martes, 7 de mayo de 2019

lunes, 22 de abril de 2019

Sensor de Velocidad

Primer Programa Utilizando el Sensor de Velocidad
 con Interrupciones


//++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++
volatile int DER=0; 
volatile int IZQ=0;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  attachInterrupt(0,RUEDADER,RISING);//INT0 en pin2
  attachInterrupt(1,RUEDAIZQ,FALLING);//INT1 en pin3
}

void loop() {
  // put your main code here, to run repeatedly:
  delay(1000);
  Serial.print("Pulsos en Rueda Derecha=");
  Serial.println(DER);
  Serial.print("Pulsos en Rueda Izquierda=");
  Serial.println(IZQ);
  Serial.println("+/+/+/+/+/+/+/+/+/+/+/+");
  DER=0;
  IZQ=0;
}

void RUEDADER(){
  DER++;        //INCREMENTAR +1
}

void RUEDAIZQ(){
  IZQ++;        //INCREMENTAR +1
}
//++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++




Les deseo mucho éxito
y sigamos programando!!!

viernes, 19 de abril de 2019

Control de Motor con PWM

Hola a todos, hoy les voy a presentar como controlar la velocidad de  las ruedas en el ROBOTCAR, con esto vamos a corregir el avance que tenia el robot y lograremos que lo haga en linea recta.


El codigo es el siguiente:
//+++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++
int mp7=7;      //CONTROL MOTOR PIN7
int PWM_mp6=6;  //SALIDA PWM AL MOTOR IZQUIERDO
int PWM_mp5=5;  //SALIDA PWM AL MOTOR DERECHO
int mp4=4;      //CONTROL MOTOR PIN4

void setup() {
  // put your setup code here, to run once:
  pinMode(mp7,OUTPUT);
  pinMode(PWM_mp6,OUTPUT);
  pinMode(PWM_mp5,OUTPUT);
  pinMode(mp4,OUTPUT);

  digitalWrite(mp7,LOW);  //LOW=BAJO= 0 VOLTS 
  digitalWrite(mp4,LOW);  //LOW=BAJO= 0 VOLTS
}

void loop() {
  // put your main code here, to run repeatedly:
  analogWrite(PWM_mp6,150); //MOTOR IZQUIERDO
  analogWrite(PWM_mp5,255); //MOTOR DERECHO
}
//+++++++++++++++++++++++++++++++++++++++++++++

//+++++++++++++++++++++++++++++++++++++++++++++
Les deseo mucho éxito
y sigamos programando!!!

martes, 2 de abril de 2019

Sensor Detector de Sonido



Código y Vídeo Tutorial más abajo:


//++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++
#define BUZZER 8
int MICROFONO=3;

int GREEN=A0;
int YELLOW=A1;
int RED=A2;

int VARX;
bool SONIDO= false;
unsigned long TIEMPO;


void setup(){
  pinMode(BUZZER,OUTPUT);
  pinMode(MICROFONO,INPUT);
  Serial.begin(9600);
  VARX=0;
  analogWrite(GREEN,255);
  delay(1000);
  analogWrite(RED,0);
  analogWrite(GREEN,0);
  analogWrite(YELLOW,0);
}

void loop(){
  SONIDO= digitalRead(MICROFONO);

  if((SONIDO==true) && (VARX==0)) 
  {
    //SONIDO=false;
    VARX++;
    TIEMPO= millis();
    delay (200);
  } 
  else if((SONIDO==true) && (VARX>0)) 
  {
    //SONIDO=false;
    VARX++;
    delay (200);
  } 
  

  if(((millis()-TIEMPO)>700) && (VARX>=1))
  { // Reseteamos estados al pasar 700 ms
    Serial.print("VarX=");
    Serial.println(VARX);
  
    switch (VARX){
      case 1:
          Serial.println("Turn On RED Led");
          tone(BUZZER,2000,300);
          analogWrite(RED,255);
          break;
      case 2:
          Serial.println("Turn On YELLOW Led");
          tone(BUZZER,700,300);
          analogWrite(YELLOW,255);
          break;
      case 3:        
          Serial.println("Turn On GREEN Led");
          analogWrite(GREEN,255);
          tone(BUZZER,300,300);
          break;
    }
    VARX=0;    
    delay(1000);
    analogWrite(RED,0);
    analogWrite(GREEN,0);
    analogWrite(YELLOW,0);
  }
}
//++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++



Les deseo mucho éxito


y sigamos programando!!!

lunes, 18 de marzo de 2019

Sensor LDR

Hoy aprenderemos a usar un sensor que detecta cuando tenemos luz, es más conocido como LDR.
;+++++++++++++++++++++++++++++++++++++++
;+++++++++++++++++++++++++++++++++++++++
int LDR=A5; //SENSOR DE LUZ
#define LED 13

void setup() {
  // put your setup code here, to run once:
  pinMode(LED,OUTPUT);  //LED EN PIN 13
  Serial.begin(9600);   //COMUNICACION CON LA PC
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.println(analogRead(LDR)); //LEER SENSOR LDR
  digitalWrite(LED,!digitalRead(LED));//TOGGLE PIN 13
  delay(1000);

}
;+++++++++++++++++++++++++++++++++++++++
;+++++++++++++++++++++++++++++++++++++++





Les deseo mucho éxito

y sigamos programando!!!


domingo, 10 de marzo de 2019

Sensor de Humedad 2

Os mostrare otro tipo de sensor de humedad y realizaremos una sencilla practica para visualizar los valores que entrega el sensor antes la presencia de humedad. El código es el siguiente:


//+++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++
int SH=A3;   //SENSOR DE HUMEDAD

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600); 
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.println(analogRead(SH));
  delay(1000);
}

//+++++++++++++++++++++++++++++++++++++++++++++++++
//+++++++++++++++++++++++++++++++++++++++++++++++++



Para aprender más sobre el otro sensor de humedad visite la siguiente pagina:
https://nbrobots.blogspot.com/2019/01/sensor-de-humedad.html


Les deseo mucho éxito
y sigamos programando!!!

lunes, 4 de marzo de 2019

Manipular el Robot con el Control Remoto

Esta practica es un reto, porque vamos a unir dos programas y manipularemos nuestro RobotCar usando un Control Remoto. Para realizar esta practica necesitas el código del Receptor de luz Infrarroja de un Mando a Distancia(control remoto) el cual puedes descargar en este enlace: http://nbrobots.blogspot.com/2019/02/... Nota: debes instalar la librería "IRLremote" aquí les pongo la liga para la descarga: https://drive.google.com/drive/folder... Y también les dejo un vídeo de como pueden cargarlo si tienen algún problema: https://youtu.be/9K6lk1vWZr4 Y por último debemos copiar las funciones que creamos para poder mover las ruedas, y también configurar el registro DDRD para usar PORTD con dicho propósito(o si lo prefieren usar las instrucciones pinMode y digitalWrite): http://nbrobots.blogspot.com/2019/02/...



//++++++++++++++++++++++++++++++++++++++++++++++++

//++++++++++++++++++++++++++++++++++++++++++++++++
#include <IRLremote.h> int BUZZER=8; int RED=A2; //LED ROJO int YELLOW=A1; //LED AMARILLO int GREEN=A0; //LED VERDE int INTERRUPCION=1; //INT 1 colocada en PIN#3 uint8_t PROTOCOLO; //FORMATO DE INFORMACION uint16_t DIRECCION; //DEL CONTROL REMOTO uint32_t TECLA; uint8_t COPIA; //ALMACENA UNA COPIA TEMPORAL DE "SREG" void ADELANTE(){ PORTD=B10010000; } void DERECHA(){ PORTD=B10000000; } void IZQUIERDA(){ PORTD=B00010000; } void DETENER(){ PORTD=B00000000; } void REVERSA(){ PORTD=B01100000; } void IREvent(uint8_t protocol,uint16_t address,uint32_t command){ PROTOCOLO=protocol; DIRECCION=address; TECLA=command; } void setup() { // put your setup code here, to run once: IRLbegin<IR_ALL>(INTERRUPCION); //Configura receptor Serial.begin(9600); //PINES 7,6,5,4,3,2,1,0 = PORTD //ENTRADA=0 Y SALIDA=1 DDRD=B11110011; pinMode(BUZZER,OUTPUT); } void loop() { // put your main code here, to run repeatedly: COPIA=SREG; cli(); //CLEAR Global Interrupt Flag while(PROTOCOLO!=0 && TECLA!=0){ Serial.print("Protocolo="); Serial.print(PROTOCOLO); Serial.print(" Dirección="); Serial.print(DIRECCION,HEX); Serial.print(" Tecla="); Serial.println(TECLA,HEX); PROTOCOLO=0; } SREG=COPIA; //sei(); //SET Global Interrupt Flag while(TECLA!=0){ switch(TECLA){ case 0x49B6: ADELANTE(); delay(1000); DETENER(); break; case 0xF906: DERECHA(); delay(500); DETENER(); break; case 0xE916: IZQUIERDA(); delay(500); DETENER(); break; case 0x1BE4: REVERSA(); delay(2000); DETENER(); break; case 0xD926: tone(BUZZER,200,200); analogWrite(RED,0); analogWrite(YELLOW,0); analogWrite(GREEN,0); break; case 0x6897: analogWrite(RED,255); analogWrite(YELLOW,0); analogWrite(GREEN,0); break; case 0x9867: analogWrite(RED,0); analogWrite(YELLOW,255); analogWrite(GREEN,0); break; case 0xB04F: analogWrite(RED,0); analogWrite(YELLOW,0); analogWrite(GREEN,255); break; } TECLA=0; } }
//++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++


Les deseo mucho éxito para este reto
y sigamos programando!!!

Transformación del Samybot

Les deseo mucho éxito y sigamos programando!!!