BloonDuino - en Arduino och Xbee baserade luftskepp (3 / 6 steg)
Steg 3: Den flygande del
Montering och programmering det flygande med luftskepp
- Anslut en Arduino Uno till datorn och öppna Arduino IDE
- Klona GitHub Repo och öppna filen "uno_and_dc_motors_with_xbee.ino"
- Kontrollera att du har rätt och att porten valde i Arduino IDE då ladda upp koden.
- Stack motorn förarens sköld på Uno
- Stapla Xbee skölden över motorn förarens. Observera att när Xbee skölden är ansluten, Arduino IDE inte tillåter dig att ladda upp koden till Arduino om du inte flyttar huvudena på skölden där det står "Xbee/USB" från Xbee till USB-sidan.
Arduino kod:
int incomingByte; en variabel att läsa inkommande seriella data i
int leftmotorForward = 8; stift 8---lämnade motor (+) grön tråd
int leftmotorBackward = 11; stift 11---lämnade motor (-) svart tråd
int leftMotorSpeedPin = 9; stift 9---lämnade varvtal signal
int rightmotorForward = 12; PIN 12---rätt motor (+) grön tråd
int rightmotorBackward = 13. PIN-13---rätt motor (-) svart
int rightMotorSpeedPin = 10; stift 10---rätt varvtal signal
int leftMotorSpeed = 0;
int rightMotorSpeed = 0;
int turnPotVal = 255; variabel för att lagra värdet kommer från sensorn
int turnPotVal2 = 255;
void setup() {
pinMode (leftmotorForward, produktionen);
pinMode (leftmotorBackward, produktionen);
pinMode (leftMotorSpeedPin, produktionen);
pinMode (rightmotorForward, produktionen);
pinMode (rightmotorBackward, produktionen);
pinMode (rightMotorSpeedPin, produktionen);
Serial.BEGIN(9600);
}
void loop() {
medan (Serial.available() > 0) {
Leta efter nästa giltiga heltal i inkommande seriell ström:
turnPotVal = Serial.parseInt();
turnPotVal2 = Serial.parseInt();
rightMotorSpeed = (1023-turnPotVal) / 4;
leftMotorSpeed = turnPotVal2/4.
analogWrite(leftMotorSpeedPin,leftMotorSpeed); Aktivera vänster motor
analogWrite(rightMotorSpeedPin,rightMotorSpeed); Aktivera rätt motor
digitalWrite(leftmotorBackward,LOW); Driver låg utgångar ner först
digitalWrite(rightmotorBackward,LOW);
digitalWrite(leftmotorForward,HIGH);
digitalWrite(rightmotorForward,HIGH);
}
}