Computer gestuurde RC auto met twee Arduinos (4 / 8 stap)

Stap 4: Ontvangst van Arduino: de Code.


Op de top van deze schets, ook de virtuele draad bibliotheek:

 #include <VirtualWire.h> //Include required library 

We zullen ook sommige constanten dat we gebruiken zullen onze auto onder controle te definiëren:

 #define FORWARD '8' #define BACKWARD '5' #define STOP '0' #define LEFT '4' #define RIGHT '6' #define STRAIGHT '/' #define TIMEOUT 500UL 

Daarna komt de variabelen voor de motor pinnen. De waarde van deze variabelen zullen ongeacht de draad op is aangesloten op de Arduino pin. Als u bekabeld jou anders moet dat u bijwerken uw code hier:

 int motor1Pin1 = 5; // pin 2 on L293D is connected to this pin on the Arduino int motor1Pin2 = 6; // pin 7 on L293D " int enablePin1 = 9; // pin 1 on L293D " int motor2Pin1 = 3; // pin 10 on L293D "int motor2Pin2 = 4; // pin 15 on L293D " int enablePin2 = 10; // pin 9 on L293D " 

Er zijn twee variabelen om te controleren de motor snelheden:

 int motor1Speed = 255; //max speed 255 int motor2Speed = 255; 

De laatste variabele is voor de timeout-teller:

 unsigned long counter; 

De setup-functie zal de pinnen als vereiste instellen. Raad heeft ook gekozen is tot virtuele draad:

 void setup() { //Set pin modes pinMode(motor1Pin1, OUTPUT); pinMode(motor1Pin2, OUTPUT); pinMode(motor2Pin1, OUTPUT); pinMode(motor2Pin2, OUTPUT); pinMode(enablePin1, OUTPUT); pinMode(enablePin2, OUTPUT); //Set enablePin to the motors speed analogWrite(enablePin1, motor1Speed); analogWrite(enablePin2, motor2Speed); //Begin with motors off digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, LOW); digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, LOW); Serial.begin(9600); //Initialise the IO and ISR vw_set_ptt_inverted(true); // Required for RX Link Module vw_setup(2000); // Bits per sec vw_set_rx_pin(13); // We will be receiving on pin 23 (Mega) ie the RX pin from the module connects to this pin. vw_rx_start(); // Start the receiver } 

De lus-functie bevat de volgende code:

 void loop() { //variables for Virtual Wire uint8_t buf[VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN; //If we got a message from the serial port if (Serial.available()) { //Reset the timeout counter counter = millis(); //Drive the requested motor drive(Serial.read()); //Otherwise check for a message from the reciever } else if (vw_get_message(buf, &buflen)) // check to see if anything has been received { //Reset timeout counter counter = millis(); int i; Serial.println("recieved"); //Debug message // Message with a good checksum received. //For each command recieved for (i = 0; i < buflen; i++) { drive(buf[i]); //Drive requested motors } //If the counter is greater than the timeout (No signal recieved) then stop the car. } else if(millis()-counter >= TIMEOUT) { drive(STOP); drive(STRAIGHT); } } 

Tot slot moeten we de Drive() functie definiëren:

 void drive(int dir) { //Check which direction is requested (same for below) if (dir == FORWARD) { Serial.println("Forward");//Used for debugging //Set motor accordingly (same for below) digitalWrite(motor1Pin1, HIGH); digitalWrite(motor1Pin2, LOW); } else if (dir == BACKWARD) { Serial.println("Backward"); digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, HIGH); } else if (dir == STOP) { Serial.println("Stop"); digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, LOW); } else if(dir == STRAIGHT) { Serial.println("Straight"); digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, LOW); }else if (dir == LEFT) { Serial.println("Left"); digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, HIGH); }else if (dir == RIGHT) { Serial.println("Right"); digitalWrite(motor2Pin1, HIGH); digitalWrite(motor2Pin2, LOW); } } 

U kunt de volledige sketch downloaden vanaf hier: https://dl.dropboxusercontent.com/u/63127140/RC_CA...

Gerelateerde Artikelen

Bijhouden van uw auto met een Arduino gebaseerde Lojack

Bijhouden van uw auto met een Arduino gebaseerde Lojack

De autodiefstal van de is een echte slepen! Verhoog uw kansen van het herstellen van uw auto door het installeren van deze eenvoudige Arduino gebaseerde tracker in uw auto.Dit project is vrij eenvoudig, en zou een goed project voor een nieuwe Arduino
Praten met een automaat MDB met twee Arduinos

Praten met een automaat MDB met twee Arduinos

automaat onderdelen al gepraat met elkaar zijn verbonden op een bus van de computer bekend als MDB.  Ik heb geschreven wat code zodat u plug in en luister naar hun gesprek in real-time.  Moet u fysieke toegang tot de automaat.Waarom de moeite?  Veel
Arduino RC auto met lange afstand en aangepaste zender.

Arduino RC auto met lange afstand en aangepaste zender.

Hallo! Dit is mijn eerste instructable.Daarin zal ik u tonen hoe te maken van een RC auto met Arduino en de draadloze nrf24l01 +-module, of hoe om te upgraden een goedkope 27 MHz RC auto.De oude RC auto, die van I het chassis, en de heli Controller n
Hoe maak je een bekabelde Rc auto met behulp van een Arduino

Hoe maak je een bekabelde Rc auto met behulp van een Arduino

Ik ga u tonen hoe te maken van een RC auto met een arduinoStap 1: materialen2 Arduino unos (dat is net wat ik gebruikt.)Jumper draden en Male naar vrouwelijke draden2 Arduino joysticks2 9v batterijenoplaadbare RC accu van 1 9.6v1 tower Pro Servo1 mot
Fries'Car - plantaardige olie auto met Arduino

Fries'Car - plantaardige olie auto met Arduino

Momenteel ronden wij onze tweede master graad in industrial engineering en dus moesten we een elektronisch systeem, die zou moeten werken met een Arduino kaart ontwerpen.Als een van ons gebruiken om te werken op auto's voor hobby voorstellen hij ons
Controle van een RC auto met behulp van de computer

Controle van een RC auto met behulp van de computer

In dit project, ik een goedkope getransformeerd RC auto behoort tot mijn zoon in een autonome auto met behulp van enkele eenvoudige stappen en Arduino. De auto kan worden gecontroleerd met de PC via seriële of USB-poort, of via de Arduino autonoom ka
Controle Arduino RC auto met behulp van android telefoon & 1Sheeld

Controle Arduino RC auto met behulp van android telefoon & 1Sheeld

Als u besturen RC auto met uw Androïde slimme telefoon wilt zonder met behulp van Bluetooth-module en programmering androïde toepassing, kunt u 1Sheeld gebruiken in plaats van hen.1Sheeld bestaat in principe uit twee delen. Het eerste deel is een sch
Hand tilt gecontroleerde auto met behulp van de arduino

Hand tilt gecontroleerde auto met behulp van de arduino

Hoi, iedereen dit is mijn eerste instructables dus een beetje begrip. pls post uw suggesties voor toekomstige instructables. I 'm trying to documenteren elke stap uit hun voor de beginners die willen aan de slag met gebouw er eigen bots maar heb idee
Arduino RC auto met FPV Camera

Arduino RC auto met FPV Camera

Dit Instructable beschrijft een afstandsbediening auto die heb ik samen te stellen. De auto heeft geen echte doel - het was gewoon een uitdaging, om te zien wat kan worden gemaakt met algemeen beschikbare hardware. Het heeft de volgende functies:-4 x
Eenvoudige arduino auto met behulp van HC-06 Bluetooth-Module

Eenvoudige arduino auto met behulp van HC-06 Bluetooth-Module

De gemakkelijkste manier om te bouwen van een Arduino-auto en controle met uw Androïde apparaat.Stap 1: Dingen nodig: Laptop met de Arduino software.Elke Arduino. (Im ' using Leonardo).Twee gelijkstroommotoren met banden stevig vastgemaakt.Een acryl
Lego Technic auto met Arduino en XBee Wireless Control

Lego Technic auto met Arduino en XBee Wireless Control

ik was doorlezen Instructables een fijne winter zaterdag, toen mijn 8 yo zoon kwam in en tuurde over mijn schouder en zag dit: door sath02. Mijn zoon is een grote fan van alle dingen Lego, en houdt van robots en auto's, en dit had gelijk zijn straatj
Computer gestuurde Arduino

Computer gestuurde Arduino

Heb je ooit wilde controleren de Arduino met een programma op uw computer die kan omgaan met een volledige GUI? Ik weet zeker dat de meesten zullen zeggen ja, maar een volledige GUI neemt hard werken. U moet de basis van dit alles weten voordat u het
Goedkope draadloze transmissie tussen twee Arduinos met infrarood

Goedkope draadloze transmissie tussen twee Arduinos met infrarood

Hoi allemaalVoor een project, was ik op zoek naar een goedkope oplossing voor het verzenden van gegevens van een Arduino met een andere. De seriële poort was al genomen en mijn transmissie (unidirectioneel) moest worden draadloze.Mijn onderzoek heeft
Autonome Arduino auto met infrarode nabijheidssensor

Autonome Arduino auto met infrarode nabijheidssensor

Dit Instructable laat zien hoe een preloved RC auto te wijzigen zodat het kan worden gecontroleerd door een Arduino. Vervolgens zal de Instructable u tonen hoe te maken van de RC uitvoeren dat een eenvoudige figuur 8 code vanaf daar de Instructable z