Wie zum Senden mehrerer Signale von der Arduino Verarbeitung

Das einzige, was besser als Signale zu Verarbeitung Senden sendet mehrere Signale, nicht wahr? mehrere Signale zu senden ist oft ein Stolperstein, obwohl, weil, obwohl Werte von mehreren Sensoren zu senden einfach ist, sie oft in der richtigen Reihenfolge auf der anderen Seite der Handhabung schwierig sein kann.

Du brauchst:

  • Ein Arduino Uno

  • Ein Steckbrett

  • Zwei 10k Ohm Potentiometer

  • Ein Taster

  • Ein 10k-Ohm-Widerstand

  • Jump Drähte

Die Schaltung ist eine Kombination aus drei separaten Eingängen. Obwohl sie alle die gleiche Leistung und Masse verwenden, können Sie von den Eingängen denken einzeln. Zwei Potentiometer bieten zwei Werte. Diese werden in der gleichen Weise beschaltet ein Temperatursensordraht würde, mit einer Seite auf 5V verdrahtet und die andere verdrahtete an den Analogeingangsstift, der es sowie auf GND über einen Widerstand liest.

bild0.jpg

Diese könnten tatsächlich mit allen analogen Eingänge mit den entsprechenden Widerstände ersetzt werden. Der Taster liefert einen digitalen Eingang sowie. Eine Seite des Tasters ist verdrahtet bis 5V und das andere ist verdrahtet mit dem digitalen Stift als auch GND über einen Widerstand zu lesen.

image1.jpg

Wie die Arduino-Code einzurichten

Nachdem Sie Ihre Schaltung montieren, müssen Sie die entsprechende Software zu benutzen. Aus dem Arduino-Menü wählen Sie Datei-Beispiele-04.Communication-SerialCallResponse. Diese Skizze enthält sowohl Arduino-Code und der entsprechenden Verarbeitungscode für die Skizze zu arbeiten. Der Verarbeitungscode unter dem Arduino-Code wird auf Kommentar Interferenz mit dem Arduino Skizze zu vermeiden.

/ * Serien Anruf und ResponseLanguage: Verdrahtung / ArduinoThis Programm sendet wiederholt ein ASCII-A (Byte des Wertes 65) auf startupand, dass bis es einige Daten bekommt in.Then es für ein Byte in der seriellen Schnittstelle wartet, andsends drei Sensorwerte, wann immer es geht ein Byte in.Thanks Greg Shakar und Scott Fitzgerald für die improvementsThe Schaltung: * Potentiometer an Analogeingänge angebracht 0 und 1 * Taster an digitalen I beigefügt / O 2Created 26. September 2005by Tom Igoemodified 24. April 2012by Tom Igoe und Scott FitzgeraldThis Beispielcode ist im öffentlichen domain.http: //arduino.cc/en/Tutorial/SerialCallResponse*/int firstSensor = 0- // ersten analogen Sensorint secondSensor = 0- // zweiten Analogsensorint thirdSensor = 0- // Digitalsensorint InByte = 0- // eingehenden seriellen bytevoid setup () {// serielle Schnittstelle mit 9600 bps starten: Serial.begin (9600) -Während (Serial!) {- // warten für die serielle Schnittstelle angeschlossen werden. Erforderlich für Leonardo nur}pinMode(2, EINGANG) - // Digitalen Sensor auf digitalen Stift 2establishContact ist () - // ein Byte senden Kontakt herzustellen, bis Empfänger // reagiert} void loop () {// wenn wir ein gültiges Byte, lesen analoge Ein- erhalten: if (Serien. (verfügbar)> 0) {// ankommende Byte erhalten: InByte = Serial.read() - // Lesen erste Analogeingang, dividiert durch 4 bis der Bereich 0-255 machen: firstSensor = analogRead(A0) / 4 - // Verzögerung 10ms der ADC zu lassen erholen:verzögern(10) - // lesen zweite Analogeingang, dividiert durch 4 bis der Bereich 0-255 machen: secondSensor = analogRead(1) / 4 - // lesen Schalter, wo es sich auf 0 oder 255LthirdSensor = Karte(digitalRead(2), 0, 1, 0, 255) - // Sensorwerte senden:Serial.write(FirstSensor) -Serial.write(SecondSensor) -Serial.write(ThirdSensor) -}}Leere establishContact () {while (Serial.available () lt; = 0) {Serial.print('EIN') - // Ein großes A sendenverzögern(300) -}}

Laden Sie diesen Code auf Ihre Arduino.

Wie wird die Verarbeitung Code einrichten

Sie finden die Verarbeitung Code innerhalb mehrzeiligen Kommentarmarkierungen (/ * * /) Am unteren Rand der Skizze Arduino SerialCallResponse. Kopieren Sie den Code innerhalb der Kommentarmarkierungen in eine neue Verarbeitungs Skizze und sparen mit einem entsprechenden Namen.

// Dieses Beispiel-Code ist in der Public Domain.Import processing.serial *. -int bgcolor- // Hintergrundfarbeint fgcolor- // colorSerial myPort- Füllen // Die serielle Schnittstelleint[] SerialInArray = new int[3] - // Wo wir setzen, was wir erhalten,int serialCount = 0- // A zählen, wie viele Bytes die wir erhalten,int xpos, ypos- // Startposition der Kugelboolean Erstkontaktmail = falsch- // Ob wir haben aus der // microcontrollervoid Setup gehört () {Größe(256, 256) - // BühnengrößenoStroke() - // Keine Grenze auf der nächsten Sache gezogen // die Startposition des Balls Set (Mitte der Bühne) xpos = Breite/ 2-ypos = Höhe/ 2 - // eine Liste der seriellen Ports Drucken, für Debugging-Zwecke:println(Serial.Liste()) - // Ich weiß, dass das erste Tor in der seriellen Liste auf meinem Mac // immer Adapter meine FTDI ist, so dass ich öffnen Serial.list () [0] .// Auf Windows-Rechnern dies in der Regel COM1 öffnet. // Öffnen was auch immer Port ist, den Sie verwenden.Schnur portname = Serien.Liste() [0] -myPort = neu Seriell (Dies, portname, 9600) -} void draw () {Hintergrund(Bgcolor) -füllen(Fgcolor) - // die Form ZeichnenEllipse(Xpos, ypos, 20, 20) -}Leere serialEvent (Serial myport) {// ein Byte von der seriellen Schnittstelle zu lesen:int InByte = myPort.read () - // wenn dies das erste Byte empfangen wird, und es ist ein A //, den seriellen Puffer löschen und beachten Sie, dass Sie haben // Ansonsten ersten Kontakt aus dem microcontroller.// hatte, fügen Sie die ankommende Byte an das Array:ob (Erstkontaktmail == falsch) {ob (InByte == 'EIN') {MyPort.clear () - // Die serielle Schnittstelle löschen bufferfirstContact = wahr- // Sie habe erste Kontakt von der microcontrollermyPort.write ('EIN') - // Mehr verlangen}} else {// die aktuelle Byte von der seriellen Schnittstelle zu Array hinzufügen: serialInArray [serialCount] = InByte-serialCount ++ - // Wenn wir 3 Bytes haben:ob (SerialCount> 2) {xpos = serialInArray [0] -ypos = serialInArray [1] -fgcolor = serialInArray [2] - // die Werte drucken (für Debugging-Zwecke nur):println(Xpos + " T" + ypos + " T" + fgcolor) - // Das Kapital A eine neue Sensormesswerte zu erhalten: myPort.write ('EIN') - // SerialCount Reset: serialCount = 0-}}}

Klicken Sie auf die Schaltfläche Ausführen der Verarbeitung Skizze auszuführen, und ein Applet erscheint. Das Applet hat einen schwarzen Hintergrund, und wenn Sie die Drucktaste drücken, wird ein weißer Punkt erscheint. Verschieben Sie die Potentiometer den Punkt horizontal und vertikal zu bewegen. Wenn Sie die Drucktaste loslassen, verschwindet der Punkt.

Menü