Quiero transferir las señales de mi teléfono inteligente a mi Arduino Uno mediante el conector de audio. He conectado directamente un canal del audio al analógico en la placa. El teléfono inteligente está enviando ~ + -0.5V. Esto se interpretará como señales de 1 o 0 bits.
Obtuve el Arduino para leer el voltaje dentro de ~ 10 microsegundos (100kHz). Mi problema es que no puedo enviar datos con esta velocidad, pero quiero acelerar la transmisión en la medida de lo posible.
Abajo puede ver el voltaje que se lee con 100kHz. En la parte superior derecha se puede ver el valor del bit. Los bits fueron enviados con 10kHz. Con una mayor frecuencia de envío, los "bloques" de bits ya no son como bloques y se confunden entre sí.
¿Es este un problema del teléfono inteligente? ¿No puede producir buenas señales con estas altas frecuencias?
¿O es un problema del circuito?
¿Qué puedo hacer para obtener una mejor señal?
Editar: Aquí está el código de Arduino Uno:
byte data[500];
unsigned long lastRead =micros();
int i;
void setup() {
bitClear(ADCSRA,ADPS0) ; //boost up analogread
bitSet(ADCSRA,ADPS1) ;
bitClear(ADCSRA,ADPS2) ;
Serial.begin(9600);
}
void loop() {
while(analogRead(A0)<50) (true); //wait for start of transmission
for(i = 0; i<500;i++){
data[i]=analogRead(A0);
}
for(int i = 0;i<500;i++){
Serial.println(data[i]);
}
delay(1000);//just prevent starting again to soon
}