Random sorteringsordningar (3 / 4 steg)
Steg 3:
Programmering är inte mycket sexig-tid (enligt vår mening). Låt oss bara få alla programmering ur vägen.
Bullduino ska läsas med sändaren följande kod:
< pre > / *
Romance byxor
av Team Instructables
Princip skådespelare inkluderar:
Audrey kärlek, Amanda Ghassaei, Randy Sarafan
Denna kod skickar trådlösa seriella data från en dragkedja potentiometer
och midjan knappen via en Xbee sköld
För mer information, besök:
denna kod är allmän egendom, njuta Vänligen!
*/
midjan knapp kopplad till digital stift 2
#define knappen 2
zipper potentiometer kopplad till analoga stift 0
#define dragkedja A0
storaga variabler
int buttonState = 0; variabel för att läsa midja knappen status
int zipperState = 0; variabel för att läsa dragkedja status
void setup() {
initiera seriell kommunikation:
Serial.BEGIN(9600);
initiera pins
pinMode (knapp, indata);
pinMode (dragkedja, ingång);
}
void loop() {
Kontrollera tillståndet i dragkedja/knappen
buttonState = digitalRead(button);
zipperState = analogRead(zipper);
Kontrollera att knappen midja är öppen.
om det är, är buttonState låg:
om (buttonState == låg) {
Serial.Print('z');
}
skala dragkedja staten
zipperState = zipperState/4.
Skicka dragkedja staten
Serial.write(zipperState);
Delay(50);
}
Arduinoen för receiverboxen ska läsas med följande kod:
< pre > / *
Romance byxor
av Team Instructables
Princip skådespelare inkluderar:
Audrey kärlek, Amanda Ghassaei, Randy Sarafan
Denna kod får trådlösa seriella data från ett par byxor via Xbee och:
-Kontrollera en fläktkontroll för att dim belysning i korrelation till byxor dragkedja
-att höja volymen på en stereo när dragkedjan sänks
-tända ljus när byxorna är uppknäppt
För mer information, besök:
Baserat på kod från http://www.ladyada.net/learn/sensors/ir.html
denna kod är allmän egendom, njuta Vänligen!
*/
Definierar LED ansluten till digital stift 13
int IRledPin = 13.
Lampor är ansluten till digital pin 9
int lampsPin = 3;
int sentDat;
int prevSentDat;
upprätta jämför värdet
för volym upp kommandot
int släppa = 250;
void setup() {
initiera IR digital stiftet som en utgång:
pinMode (IRledPin, OUTPUT);
initierar utgångsstiftet ljus
pinMode (8, OUTPUT);
pinMode (9, OUTPUT);
Serial.BEGIN(9600);
}
void loop() {
om (Serial.available() > 0) {
prevSentDat = sentDat;
sentDat = Serial.read();
om (sentDat > prevSentDat) {//if det nya värdet är högre än förra
medan (prevSentDat < sentDat) {
prevSentDat ++; //increment prevSent
analogWrite (lampsPin, prevSentDat);
Delay(5);
}
}
annat {//new värde är lägre
medan (prevSentDat < sentDat) {
prevSentDat--; //decrement prevSent
analogWrite (lampsPin, prevSentDat);
Delay(5);
}
}
om motståndet sjunker, skruva upp volymen
om (släppa < = sentDat) {
volymen går upp
volumeUp();
vänta 30 millisekunder
Delay(30);
släppa = sentDat - 5.
}
om (sentDat == "z") {
tona ut från max till min i steg om 5 poäng:
digitalWrite 8, hög.
digitalWrite (9, hög).
Delay(10000);
digitalWrite 8, låg.
digitalWrite (9, låg).
}
}
}
Detta förfarande skickar en 38KHz puls till IRledPin
för en viss # mikrosekunder. Vi använder detta när vi behöver skicka koder
void pulseIR(long microsecs) {
Vi ska räkna ner från numrera av mikrosekunder vi får höra att vänta
CLI(); Detta stänger av någon bakgrund avbryter
samtidigt (microsecs > 0) {
38 kHz är cirka 13 mikrosekunder hög och 13 mikrosekunder låg
digitalWrite (IRledPin, hög); Detta tar ca 3 mikrosekunder att hända
delayMicroseconds(10); hänga ut för 10 mikrosekunder
digitalWrite (IRledPin, låg); Detta tar också ca 3 mikrosekunder
delayMicroseconds(10); hänga ut för 10 mikrosekunder
så 26 mikrosekunder alldeles
microsecs-= 26.
}
SEI(); Detta visar dem tillbaka på
}
void volumeUp() {
Detta är koden för min särskilda JVC stereo
för knappen volym upp
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);
///////
}
När båda är programmerade, kontrollera att de är avstängd och bifoga de trådlösa sköldarna. Göra säker på att mikrobrytare på båda de sköldar är växlas till "micro."