aiuto su uno sketch su arduino
volevo chiedere un piccolo aiuto su uno sketch di mia creazione per paura di bruciacchiare qualcosa, non si sa mai, magari non succede niente…
in poche parole questo robot dovrebbe camminare e schivare ostacoli proseguendo dove c'è più spazio. inoltre io ho cercato di incorporare questo sketch uno schermo lcd dovrebbe attivarsi seconda dei rilevamenti del sensore ad ultrasuoni che comanda anche lo sterzo.
il tutto è motorizzato da 2 motori dc controllati da un doppio ponte h collegato ad arduino.
in poche parole questo robot dovrebbe camminare e schivare ostacoli proseguendo dove c'è più spazio. inoltre io ho cercato di incorporare questo sketch uno schermo lcd dovrebbe attivarsi seconda dei rilevamenti del sensore ad ultrasuoni che comanda anche lo sterzo.
il tutto è motorizzato da 2 motori dc controllati da un doppio ponte h collegato ad arduino.
code: [select]
long duration;
long dursx;
long durdx;
const int en1 = 11; //pin enable
const int en2 = 9;
const int m1fd = 4; //controlli motore
const int m2fd = 7;
const int m1bk = 2;
const int m2bk = 6;
const int pinping = 13; //pin sensore distanza
const int sterzo = 600; //durata dello sterzo
const int distanza = 500; //distanza minima ostacoli
int motore1 = 67;//pwm motore dx
int motore2 = 74;//pwm motore sx
/*
liquidcrystal library - hello worl
const int lcd rs pin digital pin 12
const int lcd enable pin digital pin 10
const int lcd d4 pin digital pin 3
const int lcd d5 pin digital pin 8
const int lcd d6 pin digital pin 5
const int lcd d7 pin digital pin 1
const int lcd r/w pin ground
const int 10k resistor:
const int ends +5v , ground
const int wiper lcd vo pin (pin 3)
*/
// include library code:
#include <liquidcrystal.h>
// initialize library numbers of interface pins
liquidcrystal lcd(12, 10, 3, 8, 5, 1);
void setup() {
pinmode(m1fd, output);
pinmode(m1bk, output);
pinmode(m2fd, output);
pinmode(m2bk, output);
pinmode(en1, output);
pinmode(en2, output);
analogwrite(en1,motore1);
analogwrite(en2,motore2);
dritto();
// set lcd's number of columns , rows:
lcd.begin(16, 2);
// print message lcd.
lcd.print("sono,porcibot,.,.,.,sterminare!");
}
void loop() {
if (echo() < distanza){ //trovato un ostacolo
analogwrite(en1,170);
analogwrite(en2,170);
ferma();
sinistra();
delay(sterzo);
ferma();
dursx = echo(); //guarda sinistra
destra();
delay(sterzo*2);
ferma();
durdx = echo(); //guarda destra
if (dursx < distanza && durdx < distanza){
destra();
delay(sterzo);
} else if (dursx > durdx) {
sinistra();
delay(sterzo*2);
} //sceglie dove c'è più spazio
dritto();
analogwrite(en1,motore1);
analogwrite(en2,motore2);
}
}
void dritto() {
digitalwrite(m1bk,low);
digitalwrite(m2bk,low);
digitalwrite(m2fd,high);
digitalwrite(m1fd,high);
// set lcd's number of columns , rows:
lcd.begin(16, 2);
// print message lcd.
lcd.print("sono,porcibot,.,.,.,sterminare!");
}
void rovescia() {
digitalwrite(m1fd,low);
digitalwrite(m2fd,low);
digitalwrite(m1bk,high);
digitalwrite(m2bk,high);
// set lcd's number of columns , rows:
lcd.begin(16, 2);
// print message lcd.
lcd.print("stò,effettuando,un,inversione,di,marcia!");
}
void destra() {
digitalwrite(m1fd,low);
digitalwrite(m2fd,high);
digitalwrite(m1bk,high);
digitalwrite(m2bk,low);
// set lcd's number of columns , rows:
lcd.begin(16, 2);
// print message lcd.
lcd.print("girare,a,destra!");
}
void sinistra() {
digitalwrite(m1fd,high);
digitalwrite(m2fd,low);
digitalwrite(m1bk,low);
digitalwrite(m2bk,high);
// set lcd's number of columns , rows:
lcd.begin(16, 2);
// print message lcd.
lcd.print("girare,a,sinistra!");
}
void ferma() {
digitalwrite(m1fd,low);
digitalwrite(m2fd,low);
digitalwrite(m1bk,low);
digitalwrite(m2bk,low);
delay(50);
// set lcd's number of columns , rows:
lcd.begin(16, 2);
// print message lcd.
lcd.print("spostati,ho,fretta!");
}
long echo() {
pinmode(pinping, output);
digitalwrite(pinping, low);
delaymicroseconds(2);
digitalwrite(pinping, high);
delaymicroseconds(5);
digitalwrite(pinping, low);
pinmode(pinping, input);
duration = pulsein(pinping,high);
return duration;
}
ti invitiamo presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: presentazioni
e leggere il regolamento: regolamento
- qui una serie di schede xxxpighi per collegamenti elettronici vari: abc - arduino basic connections
- qui le pinout delle varie schede xxxpighi: pinout
- qui una serie di link generali utili: link utili
1. il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare, altrimenti una parte può non essere visualizzata
2. il cross-posting è vietato
http://forum.arduino.cc/index.php?topic=256489.msg1813978#msg1813978
3. nella sezione inglese devi fare domande in inglese e non in italiano
4. e la domanda dove stà? hai postato un codice e spiegato parole come hai collegato le cose.
ma non c'e' nessuna domanda.
e leggere il regolamento: regolamento
- qui una serie di schede xxxpighi per collegamenti elettronici vari: abc - arduino basic connections
- qui le pinout delle varie schede xxxpighi: pinout
- qui una serie di link generali utili: link utili
1. il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare, altrimenti una parte può non essere visualizzata
2. il cross-posting è vietato
http://forum.arduino.cc/index.php?topic=256489.msg1813978#msg1813978
3. nella sezione inglese devi fare domande in inglese e non in italiano
4. e la domanda dove stà? hai postato un codice e spiegato parole come hai collegato le cose.
ma non c'e' nessuna domanda.

Arduino Forum > International > Italiano > Software (Moderator: leo72) > aiuto su uno sketch su arduino
arduino
Comments
Post a Comment