Ich bin sehr neu im Hardware-Design und mache eine optische Erkennungsschaltung mit einer Fotodiode. Ich muss lediglich eine Schnittstelle mit der Fotodiode herstellen und die Ausgangsspannungswerte in der Arduino IDE speichern
Hardware-Setup:
ADC <-> Arduino Micro Verbindungen:
Meine zwei Fragen lauten:
Sind meine Verbindungen zwischen ADC und Arduino Micro korrekt, um über das SPI-Protokoll zu kommunizieren?
Wie kann ich in Arduino IDE den Code so bearbeiten, dass das Arduino Micro Daten vom ADC per SPI-Protokoll empfängt und im seriellen Monitor anzeigt?
#include <SPI.h>
ungültige Einrichtung () {
pinMode(SS, OUTPUT);
pinMode(MISO, OUTPUT);
digitalWrite(SS,HIGH);
Serial.begin(115200);
}
Leere Schleife () {Byte c;
digitalWrite (SS, NIEDRIG);
Serial.println(analogRead(MISO));
digitalWrite(SS, HIGH);
delay(100);
}
So funktioniert ein SPI-ADC NICHT.
Ihr Ansatz besteht darin, die digitale und die analoge Welt auf die seltsamste Art und Weise zu vermischen.
Der externe ADC speichert die Datenbytes in einem Register, nachdem die Daten abgetastet wurden. Werte müssen mit den entsprechenden Befehlen über eine Bibliothek oder einen benutzerdefinierten Satz von Anweisungen unter Verwendung des SPI-Kommunikationsprotokolls abgefragt werden
Die Art und Weise, wie Sie versuchen, den Wert aus dem ADC zu lesen, indem Sie einen analogen Wert im MISO-Pin erwarten, ist einfach falsch und macht keinen Sinn.
Lesen Sie das Handbuch des Geräts und finden Sie heraus, welche Befehle Sie an das Gerät senden müssen, um die digitalisierten Werte anzufordern.
Machen Sie sich außerdem ein gutes Bild davon, wie das SPI-Protokoll funktioniert. Das wird sehr hilfreich sein.
Diese Bibliothek könnte hilfreich sein: https://github.com/bakercp/MCP3XXX
Ich wiederhole, wie viele weise Männer zu sagen pflegten: RTFM!
Elliot Alderson
Kevin