| Software Schnittstelle(für Arduino)
ArduinoArduino Nano. In dem Beispiel bekommt Arduino Nano eine neue serielle Schnittstelle. Der Mikrocontroller ist
standardgemäß mit nur einer Schnittstelle ausgestattet. Auch andere Arduinoboards könnten in dem Beispiel zum
Einsatz kommen. DisplayDisplay 16x2. Die Messergebnisse des Ultraschalls werden auf dem Display angezeigt. Das Display hat zwei Zeilen mit
je 16 Zeichen und kommuniziert mit Arduino über den I2C-Bus. Für die Kommunikation werden zwei Leitungen benötigt. Der
Anschluss erfolgt an den Pins SDA und SCL. Damit das möglich ist, wird an das Display das Kommunikationsmodul FC-113
angeschlossen oder angelötet. Ultraschall-SensorUltraschall. Als Kommunikationspartner dient in dem Beispiel ein wasserdichter Ultraschallsensor mit der
Auswertungselektronik SR04M-2. Der Ultraschall kann Entfernungen im Bereich 20 bis 200 cm messen (Die Angaben zu der Reichweite
weichen voneinander ab). Das Auswertungsmodul stellt drei Kommunikationsmodi zur Verfügung. Wir nutzen in dem Beispiel den Modus,
indem das Modul seriell alle 100ms die Entfernungsdaten sendet. Um den Modus zu aktivieren, wird an das Modul ein Widerstand
(R27) im Wert von 47kOhm angeschlossen. SpannungsreglerSpannungsregler mit LM317. Als Spannungsregler dient ein selbst gebasteltes Modul mit dem Regler LM317. Die hohe
Eingangsspannung von 9V wird mit dem Modul auf 5V runtergeregelt. Die Spannung wird für den Ultraschall und das
Display benötigt. Der SchaltplanSchaltplan Das Programm (Sketch)// **********************************************************************************************// Extra (Software) Schnittstelle für Arduino // Beispiel mit einem Ultraschall // Arduino Sketch // Arduino IDE 1.8.19 // ********************************************************************************************** #include <LiquidCrystal_I2C.h> // Bibliothek Display I2C-Bus LiquidCrystal_I2C Display(0x27,16,2); // Display definieren #include <SoftwareSerial.h> // Bibliothek SoftwareSerial #define RX 9 // RX Pin #define TX 8 // TX Pin SoftwareSerial ExtraSerial(RX, TX); byte Start_Byte; // Sende Bytes int Entfernung; // Gemessene Entfernung byte Puffer [3]; // Puffer Variable // 0=H_Byte, 1=L_Byte, 2-Quersumme void setup() { ExtraSerial.begin(9600); // Software Schnittstelle initialisieren Display.init(); // Display initialisieren Display.backlight(); // Hintergrundbeleuchtung ein } // ********************************************************************************************** void loop() { // Hauptprogramm if(ExtraSerial.available()) { // Daten vorhanden? Start_Byte = (byte)ExtraSerial.read(); // Char in Byte umwandeln if(Start_Byte == 255){ ExtraSerial.readBytes(Puffer, 3); // Daten auslesen Entfernung = (Puffer[0]<<8) + Puffer[1]; // <<8: Bits um 8 Stellen verschieben if (((Start_Byte + Puffer[0] + Puffer[1])&0xFF) == Puffer[2]){ // Quersumme OK? Display.setCursor(3,0); // Inhalte für Display Display.print("Entfernung"); Display.setCursor(6,1); Display.print(" "); Display.setCursor(6,1); Display.print(Entfernung); } } } } // ********************************************************************************************** Die neue Schnittstelle heißt in dem Sketch ExtraSerial. Die Anschlüsse sind die Pins D8(TX) und D9(RX).
|
Google-Suche auf MEINE-SCHALTUNG.de : |