Gest, röst, joystick baserat rullstolen för människor med funktionshinder! (6 / 9 steg)
Steg 6: Kod för Tx1:-Adxl335 och Joystick
int inPin = 10; numret på ingångsstiftet
int outPin = 13. numret på utgångsstiftet
int state = hög; det aktuella läget för utgångsstiftet
int läsning; den nuvarande behandlingen från ingångsstiftet
int tidigare = låg; den föregående behandlingen från ingångsstiftet
byte com = 0;
int gndpin = A6;
CONST int xpin = A2; x-axeln av accelerometern
CONST int ypin = A3; y-axeln av accelerometern
int xpin = A0; j x
int ypin = A1; j y
int x = 0;
int y = 0;
lång tid = 0; sista gången utgångsstiftet var växlas
långa Dämpningstid = 200. debounce tiden, öka om utdata flimrar
void setup()
{
pinMode (inPin, ingång);
pinMode (outPin, utgång);
pinMode (gndpin, produktionen);
digitalWrite (gndpin, låg);
pinMode(5,OUTPUT); A11 för RF tx 1
pinMode(4,OUTPUT); A10
pinMode(3,OUTPUT); A9
pinMode(2,OUTPUT); A8
pinMode (6, OUTPUT);
pinMode (7, OUTPUT);
pinMode (8, OUTPUT);
pinMode (9, OUTPUT);
Serial.BEGIN(9600);
}
void loop()
{
läsning = digitalRead(inPin);
Delay(200);
om (läser == hög & & föregående == låg & & millis() - tid > Dämpningstid) {
om (statligt == hög)
State = låg;
annat
State = hög;
tid = millis();
}
digitalWrite (outPin, statliga);
tidigare = behandlingen.
IF(digitalRead (outPin) == hög)
{
om ((analogRead(ypin) > 400) & &(analogRead(xpin) Serial.println('1');
digitalWrite(2,LOW); 5
digitalWrite(3,HIGH); 6
digitalWrite(4,HIGH); 10
digitalWrite(5,LOW); 11
}
annars om ((analogRead(ypin)940) & &(analogRead(ypin)>400)) {/ / bakåt
Serial.println('2');
digitalWrite(2,HIGH); 5
digitalWrite(3,LOW); 6
digitalWrite(4,LOW); 10
digitalWrite(5,HIGH); 11
}
annars om ((analogRead(ypin)400) & &(analogRead(xpin) Serial.println('4');
digitalWrite(2,LOW); 5
digitalWrite(3,LOW); 6
digitalWrite(4,LOW); 10
digitalWrite(5,HIGH); 11
}
annars om ((analogRead(ypin) > 900) & & (analogRead(xpin)400)) {/ / höger
Serial.println('6');
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
}
annars om ((analogRead(ypin) > 400) & & (analogRead(xpin)440)) {/ / stopp
Serial.println('0');
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
}
}
annat if(digitalRead (outPin) == låg)
{
x = analogRead(A4);
y = analogRead(A5);
Delay(200);
om (((x240)) & & ((y>300) & & (y {
Serial.println('1');
digitalWrite(2,LOW); 5
digitalWrite(3,HIGH); 6
digitalWrite(4,HIGH); 10
digitalWrite(5,LOW); 11
}
annars om (((x360)) & & ((y>305) & & (y {
Serial.println('2');
digitalWrite(2,HIGH); 5
digitalWrite(3,LOW); 6
digitalWrite(4,LOW); 10
digitalWrite(5,HIGH); 11
}
annars om (((y370)) & & ((x>320) & & (x Serial.println('4');
digitalWrite(2,LOW); 5
digitalWrite(3,LOW); 6
digitalWrite(4,LOW); 10
digitalWrite(5,HIGH); 11
}
annars om (((x280)) & & ((y>240) & & (y {
Serial.println('6');
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
}
annars om (((x300)) & & ((y>300) & & (y {
Serial.println('0');
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);
digitalWrite(5,HIGH);
}
}
}