Se establece un protocolo de comunicación asíncrono entre dos microcontroladores: uno envía un valor de potenciómetro en formato binario y el otro lo convierte a decimal para su visualización, utilizando una conexión a tierra común para precisión. Esto para evaluar los métodos de comunicación que se utilizan en el área de redes digitales.
Instrucciones PDFSe implementa un protocolo de comunicación asíncrono. Un Arduino convierte el valor analógico de un potenciómetro a un arreglo binario de 8 bits y lo envía en serie, precedido por un bit de inicio en alto, siguiendo un pulso predeterminado. El segundo Arduino recibe esta secuencia de bits, la procesa y convierte a un valor decimal, que luego se muestra en el monitor serial. Este proceso requiere que ambos Arduinos compartan una conexión a tierra común para garantizar la comunicación precisa y asíncrona.
//ENVIA PULSOS ARDUINO 1
int pot=0;
void setup()
{
pinMode(8, OUTPUT);
Serial.begin(9600);
delay(2000);//Esperamos inicie Arduino 2
pot=analogRead(A5);
//Serial.println(pot);
pot=map(pot,0,1023,0,255);
Serial.println(pot);
digitalWrite(8, HIGH); //INICIAMOS con HIGH
delay(1000);
for(int i=0; i<8; i++)
{
digitalWrite(8,pot%2);
delay(1000);
Serial.print(pot%2);
pot=pot/2;
}
digitalWrite(8, LOW);
delay(1000); // TERMINAMOS Ccon LOW
Serial.println("");
}
void loop()
{
}
//RECIBE DE PULSOS ARDUINO 2 POTENCIOMETRO
int bit;
int suma=0;
int potencia=1;
String dato = "";
void setup()
{
pinMode(8, INPUT);
Serial.begin(9600);
}
void loop()
{
if(digitalRead(8)==HIGH)
{
delay(1050);
for(int i=8; i>0; i--)
{
bit=digitalRead(8);
//Serial.print(bit);
dato+=(bit);
//Serial.println(potencia);
suma=suma +(bit*potencia);
//Serial.println(suma);
potencia=potencia*2;
delay(500);
}
Serial.println("");
reverseString(dato);
Serial.println(dato);
dato="";
//Serial.println("");
Serial.println(suma);
}
suma=0;
potencia=1;
//delay(1000);
}
void reverseString(String &str)
{
int len = str.length();
for (int i = 0; i < len / 2; i++)
{
char temp = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = temp;
}
}