Arduino: Emitiendo ceros y unos
Nuestra idea es sacar por el pin 2 de nuestra Arduino repetidamente una forma de onda cuadrada concreta. Nos valdría cualquiera pero, para nuestro ejemplo, intentaremos reproducir la siguiente:
Para emitir un 1, pondremos el pin a alto, esperaremos un tiempo determinado y luego lo pondremos a bajo, esperaremos otro tiempo y así repetidamente.
El programa es muy simple. Definimos el pin por el que sale la señal y el tiempo que dura un pulso. Como lo primero que queremos emitir son cuatro 1, ponemos el pin de salida en alto y esperamos cuatro veces el tamaño del pulso. Con la misma idea reproducimos los demás ceros y unos para conseguir la onda adecuada.
const int pinDeSalida = 2; // Indicamos el pin por el que sale la señal
const int pulsoBase = 250; // Este es el tamaño del pulso base en ms
void setup()
{
// ponemos pin en modo salida
pinMode(pinDeSalida, OUTPUT);
}
void loop()
{
digitalWrite(pinDeSalida, HIGH);
delayMicroseconds(pulsoBase * 4); // 1111
digitalWrite(pinDeSalida, LOW);
delayMicroseconds(pulsoBase); // 0
digitalWrite(pinDeSalida, HIGH);
delayMicroseconds(pulsoBase * 2); // 11
digitalWrite(pinDeSalida, LOW);
delayMicroseconds(pulsoBase); // 0
digitalWrite(pinDeSalida, HIGH);
delayMicroseconds(pulsoBase); // 1
digitalWrite(pinDeSalida, LOW);
delayMicroseconds(pulsoBase * 2); // 00
digitalWrite(pinDeSalida, HIGH);
delayMicroseconds(pulsoBase * 2); // 11
digitalWrite(pinDeSalida, LOW);
delayMicroseconds(pulsoBase); // 0
digitalWrite(pinDeSalida, HIGH);
delayMicroseconds(pulsoBase); // 1
digitalWrite(pinDeSalida, LOW);
delayMicroseconds(pulsoBase * 2); // 00
}
Tras haber cargado el programa, hemos realizado una pequeña prueba conectando una sonda a nuestra Arduino para verla en un osciloscopio. Como se ve en la siguiente imagen, hemos logrado emitir la onda con éxito:
En esta otra vemos un detalle de la onda:
Comentarios
Publicar un comentario
En entradas antiguas, los comentarios quedarán pendientes de moderación. Si tu comentario tarda en aparecer, ten paciencia ;D