Soy muy nuevo en el diseño de hardware y estoy haciendo un circuito de detección óptica usando un fotodiodo. Simplemente necesito interactuar con el fotodiodo y guardar los valores de voltaje de salida en Arduino IDE
Configuración de hardware:
Conexiones ADC <-> Arduino Micro:
Mis dos preguntas son:
¿Mis conexiones entre ADC y Arduino Micro son correctas para comunicarse por protocolo SPI?
En Arduino IDE, ¿cómo puedo editar el código para que Arduino Micro reciba datos del ADC por protocolo SPI y los muestre en el monitor serie?
#incluir <SPI.h>
configuración vacía () {
pinMode(SS, OUTPUT);
pinMode(MISO, OUTPUT);
digitalWrite(SS,HIGH);
Serial.begin(115200);
}
ciclo vacío() { byte c;
escritura digital (SS, BAJO);
Serial.println(analogRead(MISO));
digitalWrite(SS, HIGH);
delay(100);
}
Así NO es como funciona un SPI ADC.
Tu enfoque es mezclar los mundos digital y analógico de la manera más extraña posible.
El ADC externo almacena los bytes de datos en un registro después de que se muestrean los datos. Los valores deben consultarse utilizando los comandos apropiados a través de una biblioteca o un conjunto personalizado de instrucciones utilizando el protocolo de comunicación SPI.
La forma en que intenta leer el valor del ADC esperando un valor analógico en el pin MISO es simplemente incorrecta y no tiene sentido.
Lea el manual del dispositivo y descubra qué comandos necesita enviarle para solicitar los valores digitalizados.
Además, comprenda bien cómo funciona el protocolo SPI. Eso va a ser extremadamente útil.
Esta biblioteca podría ser de ayuda: https://github.com/bakercp/MCP3XXX
Reitero, como suelen decir muchos sabios: ¡RTFM!
eliot alderson
Kevin