Dagu rover 5 - arduino mega 2560 - Xbee (9 / 11 stap)

Stap 9: Definitieve code

Hier is de definitieve code voor de arduino mega 2560. Ik heb subbevelen gemakkelijker gemaakt.

 int count; int check1; //see if subcomand has run int check2; //see if subcomand has run int check3; //see if subcomand has run int check4; //see if subcomand has run int check5; //see if subcomand has run 
 void setup() { Lcount=0; Rcount=0; 
 // initialize the digital pin as an output. pinMode(dirch1,OUTPUT); pinMode(dirch2,OUTPUT); pinMode(dirch3,OUTPUT); pinMode(dirch4,OUTPUT); 
 pinMode(speedch1,OUTPUT); pinMode(speedch2,OUTPUT); pinMode(speedch3,OUTPUT); pinMode(speedch4,OUTPUT); 
 pinMode(encoderA, INPUT); pinMode(encoderB, INPUT); attachInterrupt(0, LhandleEncoder, CHANGE); pinMode(encoderC, INPUT); pinMode(encoderD, INPUT); attachInterrupt(5, RhandleEncoder, CHANGE); 
 Serial2.begin(9600); Serial.begin(9600); 
 analogWrite(speedch1,0);// stop all analogWrite(speedch2,0);// stop all analogWrite(speedch3,0);// stop all analogWrite(speedch4,0);// stop all 
 count = 0; (SPEED = 200); 
 } 
 // the loop routine runs over and over again forever: void loop() { 
 if (Serial2.available() > 0) { // read the incoming byte: incomingByte = Serial2.read(); } if(incomingByte == 10 && check1 == 0) forward(); else if(incomingByte == 11 && check2 == 0) rotate_right(); else if(incomingByte == 12 && check3 == 0) backward(); else if(incomingByte == 13 && check4 == 0) rotate_left(); else if(incomingByte == 14 && check5 == 0) pause(); 
 // if(incomingByte == 16){ // if (Lcount != Lcountsaved && Rcount != Rcountsaved) Serial2.print(Lcount,DEC);//send encoder data Serial2.print(","); Serial2.print(Rcount,DEC); Serial2.print(","); Serial2.println(); incomingByte = 1; // Lcountsaved = Lcount; //Rcountsaved = Rcount; // } } void LhandleEncoder() { if(digitalRead(encoderA) == digitalRead(encoderB)) { Lcount++; } else { Lcount--; } } 
 void RhandleEncoder() { if(digitalRead(encoderC) == digitalRead(encoderD)) { Rcount++; } else { Rcount--; } } 
 void forward() { check2 = 0; check3 = 0; check4 = 0; check5 = 0; analogWrite(speedch1,0); analogWrite(speedch2,0); analogWrite(speedch3,0); analogWrite(speedch4,0); delay(100); digitalWrite(dirch1,LOW); digitalWrite(dirch2,HIGH); digitalWrite(dirch3,LOW); digitalWrite(dirch4,HIGH); analogWrite(speedch1,SPEED); analogWrite(speedch2,SPEED); analogWrite(speedch3,SPEED); analogWrite(speedch4,SPEED); check1 = 1; 
de routine van de lus wordt uitgevoerd over en weer forever: } 
Als (Serial2.available() > 0) {/ / Lees de binnenkomende byte: incomingByte = Serial2.read(); void backward() { check1 = 0; check2 = 0; check4 = 0; check5 = 0; analogWrite(speedch1,0); analogWrite(speedch2,0); analogWrite(speedch3,0); analogWrite(speedch4,0); delay(100); digitalWrite(dirch1,HIGH); digitalWrite(dirch2,LOW); digitalWrite(dirch3,HIGH); digitalWrite(dirch4,LOW); analogWrite(speedch1,SPEED); analogWrite(speedch2,SPEED); analogWrite(speedch3,SPEED); analogWrite(speedch4,SPEED); 
if(incomingByte == 16) {/ / if (Lcount! = Lcountsaved & & Rcount! = Rcountsaved) Serial2.print (Lcount, DEC); //send encoder gegevens Serial2.print(","); Serial2.Print(Rcount,DEC); Serial2.Print(","); Serial2.println(); incomingByte = 1; Lcountsaved = Lcount; Rcountsaved = Rcount; // check3 = 1; } ongeldig LhandleEncoder() {if(digitalRead(encoderA) == digitalRead(encoderB)) {Lcount ++; } else {Lcount--; void rotate_right() { check1 = 0; check3 = 0; check4 = 0; check5 = 0; analogWrite(speedch1,0); analogWrite(speedch2,0); analogWrite(speedch3,0); analogWrite(speedch4,0); delay(100); //wait to stop digitalWrite(dirch1,LOW); digitalWrite(dirch2,HIGH); digitalWrite(dirch3,HIGH); digitalWrite(dirch4,LOW); analogWrite(speedch1,SPEED); analogWrite(speedch2,SPEED); analogWrite(speedch3,SPEED); analogWrite(speedch4,SPEED); check2 = 1; 
VOID RhandleEncoder() {if(digitalRead(encoderC) == digitalRead(encoderD)) {Rcount ++; } else {Rcount--; void rotate_left() { check1 = 0; check2 = 0; check3 = 0; check5 = 0; analogWrite(speedch1,0); analogWrite(speedch2,0); analogWrite(speedch3,0); analogWrite(speedch4,0); delay(100); digitalWrite(dirch1,HIGH); digitalWrite(dirch2,LOW); digitalWrite(dirch3,LOW); digitalWrite(dirch4,HIGH); analogWrite(speedch1,SPEED); analogWrite(speedch2,SPEED); analogWrite(speedch3,SPEED); analogWrite(speedch4,SPEED); check4 = 1; 
 } 
 void pause() { check1 = 0; check2 = 0; check3 = 0; check4 = 0; analogWrite(speedch1,0); analogWrite(speedch2,0); analogWrite(speedch3,0); analogWrite(speedch4,0); check5 = 1; } 
 import processing.serial.*; Serial myPort; // Create object from Serial class int lf = 10; // Linefeed in ASCII int source1; int source2; String myString = null; 
 void setup(){ size(640, 360); println(Serial.list()); String portName = Serial.list()[5]; // pick the port connected myPort = new Serial(this, portName, 9600); myPort.clear(); 
 myString = myPort.readStringUntil(lf); myString = null; source1 = 0; source2 = 0; 
 } void draw(){ background(255,255,255); textSize(32); text(source1,20,60); text(source2,20,120); fill(0,0,0); while (myPort.available() > 0) { myString = myPort.readStringUntil(lf); if (myString != null) { println(myString); 
 String[] q = splitTokens(myString, ",");//split at "," println(q.length + " values found"); // Prints 2 values found" source1 = int(q[0]); source2 = int(q[1]); } } } void keyPressed() { if (key == CODED) { if (keyCode == UP) { myPort.write(10);//Forward } else if (keyCode == DOWN) { myPort.write(12);//Backward } else if(keyCode == LEFT){ myPort.write(13);//LEFT } else if(keyCode == RIGHT){ myPort.write(11);//Right }else if(keyCode == CONTROL){ myPort.write(14); //Pause } } } 
VOID pause() {check1 = 0; check2 = 0; check3 = 0; check4 = 0; analogWrite(speedch1,0); analogWrite(speedch2,0); analogWrite(speedch3,0); analogWrite(speedch4,0); check5 = 1;

Gerelateerde Artikelen

Hoe gebruik Arduino Mega 2560 als Arduino isp

Hoe gebruik Arduino Mega 2560 als Arduino isp

wanneer ik het opbouwen van mijn Atmega328p-pu op een Printplaat voor mijn bromfiets ik het nodig had om te bootload.Omdat ik er geen externe hebben programmering apparatuur ik nodig had om mijn Arduino Mega 2560 gebruiken als ArduinoISP ( http://ard
DIY Arduino Mega 2560 of 1280

DIY Arduino Mega 2560 of 1280

dus dit mijn eerste instructables is... Laten we proberen dit!* origineel kan hier worden gevonden: http://tsjwang.blogspot.com/2013/08/diy-arduino-mega-2560.html*Oke.Hier is het verhaal: Ik was bezig met dit frustrerend Arduino project, en ik besloo
Arduino Mega 2560 based LDR licht intensiteit Control

Arduino Mega 2560 based LDR licht intensiteit Control

Meeste van jullie al weten over Arduino en programmeren, maar degenen onder u die niet over haar basics weet moeten lees dit instructable eerst.Het heeft alles wat die u moet weten over Arduino. Ik heb Mega 2560 gebruikt in dit instructable omdat het
DIY Webserver met Arduino Mega 2560

DIY Webserver met Arduino Mega 2560

In dit DIY-project, zullen we onszelf een kleine webserver met W5100 schild en arduino mega 2560,Laten we onszelf begonnen,Alle onderdelen voor te bereiden...Stap 1: De onderdelen die nodig zijn voor deze DIY 1. Arduino Mega 25602. W5100 Ethernet-shi
DIY kale Minimum Arduino Mega 2560

DIY kale Minimum Arduino Mega 2560

Het doel van dit project is een versie van het Arduino Mega 2560 board dat lagere onderdeel tellen en bestuur kleiner heeft maken.Persoonlijk moet worden gebruikt voor robotica-projecten die ATmega2560 van 256 KB flash en digitaal/analoog pinnen vere
Hoe te gebruiken 2.4 inch TFT LCD SPFD5408 met arduino MEGA 2560

Hoe te gebruiken 2.4 inch TFT LCD SPFD5408 met arduino MEGA 2560

Dit instructable zal u tonen hoe het SPFD5408 2.4 Inch LCD-scherm aan de arduino MEGA interfaceStap 1:Stap 2: BibliothekenSommigen van u kunnen hebben gekocht deze LCD-scherm of het denken op het krijgen vaneen. Haar een groot scherm voor het weergev
Arduino Mega 2560 R3 plaat

Arduino Mega 2560 R3 plaat

3D Arduino Mega prototyping drukplaat.Ik brak de plaat in 2 stukken te maken voor afdrukken op kleiner 3D bouwen platformen (solid model ook geboden).U kunt de gratis 123D app beschikbaar http://www.123dapp.com/123d en download mijn http://www.123dap
Een gids van newbie aan opstelling ESP8266 met Arduino Mega 2560 of Uno

Een gids van newbie aan opstelling ESP8266 met Arduino Mega 2560 of Uno

Voor open bronproducten om succesvol te zijn en de eventuele aanneming en masse door de "makers" / "DIY-ers" / "dev" / "etc"; een actuele en accurate documentatie of Snelstartgids moet worden verstrekt. Gebruiker be
Arduino MEGA 2560 Home automation met 8 kanaals Relais

Arduino MEGA 2560 Home automation met 8 kanaals Relais

Check de volgende pagina's voor het schema en de code.Stap 1: Het schema Hier ziet u het schema.Moet zeer gemakkelijk te begrijpen.Sluit het zoals blijkt uit het schema.Stap 2: De CodeU moet de SPI en Ethernet bibliotheken opnemen.Waarschijnlijk moet
Arduino Mega Intro

Arduino Mega Intro

Hey iedereenDe Arduino Mega is een verbazingwekkende microcontroller voor projecten die een grote hoeveelheid io of verwerking stroom nodig en is leuk om te gebruiken. In dit instructable we zullen kijken naar de:Arduino Megas specsde projecten zijn
RS485 Seriële communicatie tussen Arduino Mega en Arduino Nano met Visuino

RS485 Seriële communicatie tussen Arduino Mega en Arduino Nano met Visuino

Soms moeten we aansluiten Arduino boards Arduino boards ligt ver weg van elkaar. De RS485 is een zeer handige manier om te verbinden de planken met slechts 2 draden, en kan werken tot een afstand van 1200 m (4000 ft). Het maakt het ook mogelijk meerd
Persoonlijke Black Box - Arduino Mega ultieme GPS-schild + LSM303

Persoonlijke Black Box - Arduino Mega ultieme GPS-schild + LSM303

persoonlijke Black Box gebruiken:-Arduino Mega 2560- Ultieme GPS datalogger schild- Triple-axis versnellingsmeter + Magnetometer (LSM303)Ik leerde al snel na de vele moeilijkheden met behulp van de gps-shield met een Arduino Uno, dat ik was ver boven
WIFI plant controlesysteem op basis van Arduino MEGA en ESP8266

WIFI plant controlesysteem op basis van Arduino MEGA en ESP8266

Vandaag gaan we om u te tonen onze eerste experiment op het Internet van dingen. Voor dit doel besloten we om het gebruik van een Arduino MEGA in plaats van een Arduino UNO. Dat komt omdat Arduino MEGA heeft meer dan één seriële poort en dit feit laa
Arduino Mega Hexapod

Arduino Mega Hexapod

Tweede Video (vrij veel het zelfde ding, behalve snellere handbewegingen):https://www.YouTube.com/watch?v=zepHB4h5JS4&featu...Dit is mijn Hexapod, gebaseerd op Lynxmotion van Phoenix hexapod hexapod en draait een aangepaste versie van KurtE van phoen