Schritt 7: Wireless communication
Programmierung ist nicht sehr sexy-Zeit (unserer Meinung nach). Lass uns einfach alle die Programmierung aus dem Weg.
Die Bullduino sollte mit dem folgenden Sendercode geladen werden:
Der Arduino für die Empfänger-Box sollte mit dem folgenden Code geladen werden:
< Pre > / * Romantik Hose von Team Instructables Prinzip Akteuren gehören: Audrey Love, Amanda Ghassaei, Randy Sarafan This Code von ein paar Hosen über Xbee drahtlose serielle Daten empfängt und: - controlling eine Lüftersteuerung zur Raumbeleuchtung in Korrelation zur Hose Reißverschluss dim - Volume auf eine Stereoanlage zu erhöhen, wenn der Reißverschluss gesenkt wird - Kerzen anzünden, wenn die Hose aufgeknöpft weitere Informationen , besuchen Sie bitte: basierend auf Code von http://www.ladyada.net/learn/sensors/ir.html dieser Code ist Public Domain, genießen Sie bitte! * / / / Definiert die LED verbunden mit digital Pin 13 Int IRledPin = 13; Lampen mit digitalen Stift 9 Int LampsPin verbunden = 3; Int SentDat; Int PrevSentDat; etablieren der Compare Wert //for die lauter Befehl Int fallen = 250; void setup() {/ / initialisieren die IR digital Pin als Ausgang: PinMode (IRledPin, OUTPUT); //initializes Kerze Ausgang Pin PinMode (8, OUTPUT); PinMode (9, OUTPUT); Serial.Begin(9600); } void loop() {wenn (Serial.available() > 0) {PrevSentDat = SentDat; SentDat = Serial.read(); wenn (SentDat > PrevSentDat) {//if der neue Wert ist höher als der letzten Zeit (PrevSentDat < SentDat) {PrevSentDat ++ //increment PrevSent AnalogWrite (LampsPin, PrevSentDat); delay(5);}} sonst {//new Wert ist niedriger bei (PrevSentDat < SentDat) {PrevSentDat - //decrement PrevSent AnalogWrite (LampsPin, PrevSentDat); delay(5);}} //if der Widerstand sinkt, die Lautstärke aufdrehen, wenn (Fallenlassen < = SentDat) {//volume steigt volumeUp(); / / warten 30 Millisekunden delay(30); fallen = SentDat - 5;} Wenn (SentDat == 'Z') {/ / Ausblenden von Max auf min in Schritten von 5 Punkten: DigitalWrite (8, HIGH); DigitalWrite (9, HIGH); Delay(10000); DigitalWrite (8, LOW); DigitalWrite (9, LOW); {}}} / / Dieses Verfahren sendet einen 38 KHz-Impuls an der IRledPin / / für eine bestimmte Anzahl von Mikrosekunden. Verwenden wir dies immer dann, wenn wir senden Codes ungültig PulseIR (lange Microsecs) {/ / Wir werden von der Anzahl der Mikrosekunden uns gesagt cli(); warten Countdown / / dadurch ausgeschaltet keine Hintergrund-Interrupts (Microsecs > 0) {/ / 38 kHz ist etwa 13 Mikrosekunden hoch und 13 Mikrosekunden niedrig DigitalWrite (IRledPin, hohe); / / dieser Vorgang dauert ca. 3 Mikrosekunden dazu delayMicroseconds(10); / / hängen für 10 Mikrosekunden DigitalWrite (IRledPin LOW); Dies dauert auch ca. 3 Mikrosekunden delayMicroseconds(10); für 10 Mikrosekunden hängen / / so 26 Mikrosekunden insgesamt Microsecs = 26; } sei(); dieser Kurven sie zurück auf} void volumeUp() {/ / Dies ist der Code für meine besonderen JVC Stereo / / für die Lautstärke-Taste delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(480); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(20140); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(480); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(20140); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(480); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(20140); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(480); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(20140); pulseIR(520); /////// }
Wenn beide programmiert sind, stellen Sie sicher, sie sind zum Anfassen und befestigen Sie die Wireless-Schilde. Stellen Sie sicher, dass der Mikroschalter auf beiden die Schilde sind umgeschaltet auf "Micro".