Se implementa un protocolo con dos microcontroladores para medir la duración de pulsos y transmitir una secuencia de 4 bits, visualizándolos en un monitor. Esto para evaluar los métodos de comunicación que se utilizan en el área de redes digitales.
Instrucciones PDFEsta actividad se centra en desarrollar un protocolo para contar el tiempo de duración de los pulsos. Un Arduino genera pulsos con un tiempo en estado alto específico, comprobado con un osciloscopio. El segundo Arduino mide la duración de estos pulsos y los muestra en el monitor serial. Además, se realiza la transmisión de una serie de 4 bits, iniciando con un bit alto, desde el primer al segundo Arduino, quien los interpreta y muestra en el monitor serial. La conexión a tierra entre ambos dispositivos es esencial para la comunicación.
//CONTADOR DE PULSOS ARDUINO 2
#define DELAY_TIME 10
int cuenta_info = 0, dato = 0;
String palabra = "";
void setup()
{
pinMode(2, INPUT);
pinMode(3, INPUT);
Serial.begin(115200);
Serial.println("Datos:");
}
void loop()
{
if (digitalRead(2) == HIGH)
{
// Wait for pin 2 to go LOW, indicating the button is released
while (digitalRead(2) == HIGH)
{
delayMicroseconds(990);
cuenta_info++;
if (cuenta_info == DELAY_TIME-1)
{
cuenta_info = 0;
dato = digitalRead(3); // Read the value from pin 3
//Serial.println(dato);
palabra+=dato;
}
//Serial.println(cuenta_info);
}
}
if (palabra.length()==5)
{
if (palabra.charAt(0)=='1')
{
palabra.remove(0, 1);
Serial.println(palabra);
palabra="";
}
else
{
Serial.println("Error en mensaje");
palabra="";
}
}
}
//ENVIO DE PULSOS ARDUINO 1
#define DELAY_TIME 10
void pulsot(int tiempo,int DATA)
{
digitalWrite(2, HIGH);
digitalWrite(3, DATA);
delay(tiempo);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
delay(tiempo);
}
void setup()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
delay(1000);
pulsot(DELAY_TIME,1);//INICIO
pulsot(DELAY_TIME,0);//dato0
pulsot(DELAY_TIME,1);//dato1
pulsot(DELAY_TIME,1);//dato2
pulsot(DELAY_TIME,1);//dato3
}
void loop()
{
}