L239D motorvezérő
L239D motorvezérő
int motorPin1a =4; // L239D motor1a
int motorPin1b=8; // L239D motor1b
int motorPin2a=7; // L239D motor2a
int motorPin2b=12; // L239D motor2b
int pwrpin1=6; // L239D PWM1
int pwrpin2=11; // L239D PWM2
int pot1 = 1; // potentiometer connected to analog pin 1
int pot2 = 2; // potentiometer connected to analog pin 2
int val = 512; // variable to store the read value
int val1= 512; // variable to store the read value
void setup()
{
pinMode (motorPin1a,OUTPUT); //L239D motor1a
pinMode (motorPin1b,OUTPUT); //L239D motor1b
pinMode (motorPin2a, OUTPUT); //L239D motor2a
pinMode (motorPin2b, OUTPUT); //L239D motor2b
pinMode (pwrpin1, OUTPUT); //L239D PWM1
pinMode (pwrpin2, OUTPUT); //L239D PWM2
}
void loop()
{
val = analogRead(pot1); // read the input pin
analogWrite(pwrpin1, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
val1 = analogRead(pot2); // read the input pin
analogWrite(pwrpin2, val1 / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
digitalWrite (motorPin1a, LOW);
digitalWrite (motorPin1b, HIGH);
digitalWrite (motorPin2a, HIGH);
digitalWrite (motorPin2b, LOW);
}
Ardunio Uno panel vezérli az AVR-Duino ShieldBoard-on megépitett L239D-t. Szerintetek evvel a programmal tudom vezérelni?
int motorPin1b=8; // L239D motor1b
int motorPin2a=7; // L239D motor2a
int motorPin2b=12; // L239D motor2b
int pwrpin1=6; // L239D PWM1
int pwrpin2=11; // L239D PWM2
int pot1 = 1; // potentiometer connected to analog pin 1
int pot2 = 2; // potentiometer connected to analog pin 2
int val = 512; // variable to store the read value
int val1= 512; // variable to store the read value
void setup()
{
pinMode (motorPin1a,OUTPUT); //L239D motor1a
pinMode (motorPin1b,OUTPUT); //L239D motor1b
pinMode (motorPin2a, OUTPUT); //L239D motor2a
pinMode (motorPin2b, OUTPUT); //L239D motor2b
pinMode (pwrpin1, OUTPUT); //L239D PWM1
pinMode (pwrpin2, OUTPUT); //L239D PWM2
}
void loop()
{
val = analogRead(pot1); // read the input pin
analogWrite(pwrpin1, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
val1 = analogRead(pot2); // read the input pin
analogWrite(pwrpin2, val1 / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
digitalWrite (motorPin1a, LOW);
digitalWrite (motorPin1b, HIGH);
digitalWrite (motorPin2a, HIGH);
digitalWrite (motorPin2b, LOW);
}
Ardunio Uno panel vezérli az AVR-Duino ShieldBoard-on megépitett L239D-t. Szerintetek evvel a programmal tudom vezérelni?
bakter
Kezdő kérdés :Az Ardunio panelek analóg bemenetein van belső felhúzó ellenállás? Mert ha nincs akkor logikusan a
(int pot1 = 1; // potentiometer connected to analog pin 1
int pot2 = 2; // potentiometer connected to analog pin 2)
bemenetekre kell kötnöm egy ellenállást, hogy a feszültségosztóként használt potméterek ne zárják rövidre az 5 voltos tápfeszültséget.
(int pot1 = 1; // potentiometer connected to analog pin 1
int pot2 = 2; // potentiometer connected to analog pin 2)
bemenetekre kell kötnöm egy ellenállást, hogy a feszültségosztóként használt potméterek ne zárják rövidre az 5 voltos tápfeszültséget.
bakter
int pwm1=6; // L239D 1 PWM1
int motor1a=7; // L239D 2 motor1a
int motor1b=12; // L239D 7 motor1b
int pwm2=11; // L239D 9 PWM2
int motor2b=8; // L239D 10 motor2b
int motor2a=4; // L239D 15 motor2a
int pot1=A4; // potentiometer connected to analog pin 4
int pot2=A5; // potentiometer connected to analog pin 5
int x; // variable to store the read value
int y; // variable to store the read value
void setup(){
pinMode (motor1a,OUTPUT); //L239D motor1a
pinMode (motor1b,OUTPUT); //L239D motor1b
pinMode (motor2a, OUTPUT); //L239D motor2a
pinMode (motor2b, OUTPUT); //L239D motor2b
pinMode (pwm1, OUTPUT); //L239D PWM1
pinMode (pwm2, OUTPUT); //L239D PWM2
pinMode (pot1, INPUT); //joystick 1
pinMode (pot2, INPUT); //joystick 2
}
void loop(){
x= analogRead(pot1);
byte x1=x/4;
analogWrite(pwm1,x1);
y= analogRead(pot2);
byte y1=y/4;
analogWrite(pwm2,y1);
digitalWrite (motor1a, LOW);
digitalWrite (motor1b, HIGH);
digitalWrite (motor2a, HIGH);
digitalWrite (motor2b, LOW);
}
Ez működik.
Már csak a motorok forgás-irányváltozását kell programozni.(Ezért olvassa be változóba a potenciométerek állását.)
Egy egyszerű kapcsolási rajzot is mellékelhetek hozzá, de sajnos nem tudom, hogy kell az oldalra képet feltölteni.
int motor1a=7; // L239D 2 motor1a
int motor1b=12; // L239D 7 motor1b
int pwm2=11; // L239D 9 PWM2
int motor2b=8; // L239D 10 motor2b
int motor2a=4; // L239D 15 motor2a
int pot1=A4; // potentiometer connected to analog pin 4
int pot2=A5; // potentiometer connected to analog pin 5
int x; // variable to store the read value
int y; // variable to store the read value
void setup(){
pinMode (motor1a,OUTPUT); //L239D motor1a
pinMode (motor1b,OUTPUT); //L239D motor1b
pinMode (motor2a, OUTPUT); //L239D motor2a
pinMode (motor2b, OUTPUT); //L239D motor2b
pinMode (pwm1, OUTPUT); //L239D PWM1
pinMode (pwm2, OUTPUT); //L239D PWM2
pinMode (pot1, INPUT); //joystick 1
pinMode (pot2, INPUT); //joystick 2
}
void loop(){
x= analogRead(pot1);
byte x1=x/4;
analogWrite(pwm1,x1);
y= analogRead(pot2);
byte y1=y/4;
analogWrite(pwm2,y1);
digitalWrite (motor1a, LOW);
digitalWrite (motor1b, HIGH);
digitalWrite (motor2a, HIGH);
digitalWrite (motor2b, LOW);
}
Ez működik.
Már csak a motorok forgás-irányváltozását kell programozni.(Ezért olvassa be változóba a potenciométerek állását.)
Egy egyszerű kapcsolási rajzot is mellékelhetek hozzá, de sajnos nem tudom, hogy kell az oldalra képet feltölteni.
bakter
http://avr.tavir.hu/modules/Upload/uplo ... _L239D.JPG
Mellékelve hozzá egy egyszerű kapcsolási rajz.
Programozásban teljesen kezdő vagyok, így bármilyen kritikát, észrevételt, segítséget szívesen fogadok.
jelenleg az eszköznek az előre-hátra menetet és fordulást jobbra-balra kellene tudnia.
Most ezzel (Ez előtti második hozzászólás) a programmal mindkét motor azonos irányban(előre) mozog, és külön szabályozható a motorok sebessége.
A problémák amiket szeretnék megoldani:
1. Hátramenet szabályozása külön mindkét motoron.
-----Ez egy legóból összerakott lánctalpas jármű motorvezérlője,
-----hátramenetek megoldanák a jobbra-balra fordulást is.
2. Mivel az irányítás gamapadból kiszerelt középállású potméterekkel
-----történik (egy mechanikus szerkezet középső állasban tartja a
-----potmétereket amennyiben nem nyúlok hozzájuk)
-----így ezek szoftveres figyelése, majd ezen értékekkel történő vezérlés
-----a cél. tulajdonképpen kettő darab analóg joystick.
3. A "probléma" ezzel, hogy az uno panel analóg bemenetein a jel nem
-----nulláról indul (Elméletileg 512-ről, középállas miatt)így
----- 512-1023-ig előre 511-0-ig hátra kellene mennie a motoroknak .
-----A motorok viszont jól 2.5- 6V tartományban működnek.
----- Így 512 érték alatt szinte meg sem mozdulnak, pedig 512- 0 értékig
-----hátramenetbe kapcsolva gyorsítani kellene a motorokat.
Ezt kellene megoldani szoftverből.Remélem valamennyire érthetően írtam le a problémát.
A programot magam szeretném megírni evvel is tanulva, viszont ötleteket, tanácsokat szívesen elfogadok, és hálásan köszönök.
Mellékelve hozzá egy egyszerű kapcsolási rajz.
Programozásban teljesen kezdő vagyok, így bármilyen kritikát, észrevételt, segítséget szívesen fogadok.
jelenleg az eszköznek az előre-hátra menetet és fordulást jobbra-balra kellene tudnia.
Most ezzel (Ez előtti második hozzászólás) a programmal mindkét motor azonos irányban(előre) mozog, és külön szabályozható a motorok sebessége.
A problémák amiket szeretnék megoldani:
1. Hátramenet szabályozása külön mindkét motoron.
-----Ez egy legóból összerakott lánctalpas jármű motorvezérlője,
-----hátramenetek megoldanák a jobbra-balra fordulást is.
2. Mivel az irányítás gamapadból kiszerelt középállású potméterekkel
-----történik (egy mechanikus szerkezet középső állasban tartja a
-----potmétereket amennyiben nem nyúlok hozzájuk)
-----így ezek szoftveres figyelése, majd ezen értékekkel történő vezérlés
-----a cél. tulajdonképpen kettő darab analóg joystick.
3. A "probléma" ezzel, hogy az uno panel analóg bemenetein a jel nem
-----nulláról indul (Elméletileg 512-ről, középállas miatt)így
----- 512-1023-ig előre 511-0-ig hátra kellene mennie a motoroknak .
-----A motorok viszont jól 2.5- 6V tartományban működnek.
----- Így 512 érték alatt szinte meg sem mozdulnak, pedig 512- 0 értékig
-----hátramenetbe kapcsolva gyorsítani kellene a motorokat.
Ezt kellene megoldani szoftverből.Remélem valamennyire érthetően írtam le a problémát.
A programot magam szeretném megírni evvel is tanulva, viszont ötleteket, tanácsokat szívesen elfogadok, és hálásan köszönök.
bakter
Akkor kel neked 1 program elágazást készítened illetve 2-t a 2 motorra:
If PVM1 < 512 Then
Motor jobbra forog
digitalWrite (motor1a, LOW);
digitalWrite (motor1b, HIGH);
Else
Motor balra forog
digitalWrite (motor1b, LOW);
digitalWrite (motor1a, HIGH);
End if
(Mondjuk ez Bascom, de ügye te akarod megírni!)
Kezdésnek 2 irányváltás, aztán még a PVM jeleket is Illeszteni kellene.
A kettéosztott szintű üzemmódhoz.
If PVM1 < 512 Then
Motor jobbra forog
digitalWrite (motor1a, LOW);
digitalWrite (motor1b, HIGH);
Else
Motor balra forog
digitalWrite (motor1b, LOW);
digitalWrite (motor1a, HIGH);
End if
(Mondjuk ez Bascom, de ügye te akarod megírni!)
Kezdésnek 2 irányváltás, aztán még a PVM jeleket is Illeszteni kellene.
A kettéosztott szintű üzemmódhoz.
int pwm1=6; // L239D 1 PWM1
int motor1a=7; // L239D 2 motor1a
int motor1b=12; // L239D 7 motor1b
int pwm2=11; // L239D 9 PWM2
int motor2b=8; // L239D 10 motor2b
int motor2a=4; // L239D 15 motor2a
int pot1=A4; // potentiometer connected to analog pin 4
int pot2=A5; // potentiometer connected to analog pin 5
int x; // variable to store the read value
int y; // variable to store the read value
void setup(){
pinMode (motor1a,OUTPUT); //L239D motor1a
pinMode (motor1b,OUTPUT); //L239D motor1b
pinMode (motor2a, OUTPUT); //L239D motor2a
pinMode (motor2b, OUTPUT); //L239D motor2b
pinMode (pwm1, OUTPUT); //L239D PWM1
pinMode (pwm2, OUTPUT); //L239D PWM2
pinMode (pot1, INPUT); //joystick 1
pinMode (pot2, INPUT); //joystick 2
}
void loop(){
x= analogRead(pot1);
byte x1=x/4;
if (x<0 && x>512){
byte x2=x1-256*-1;
analogWrite(pwm2,x2);
}
else
{
analogWrite(pwm2,x1);
}
if (x>490 && x <510);
{
digitalWrite (motor1a, LOW);
digitalWrite (motor1b, LOW);
}
if (x>510 ){
digitalWrite (motor1a, HIGH);
digitalWrite (motor1b, LOW);
}
if (x<490 ){
digitalWrite (motor1a, LOW);
digitalWrite (motor1b, HIGH);
}
y= analogRead(pot2);
byte y1=y/4;
if (x>0 && x<512){
byte y2=y1-256*-1;
analogWrite(pwm1,y2);
}
else {
analogWrite(pwm1,y1);
}
if (y>480 && y<520);
{
digitalWrite (motor2a, LOW);
digitalWrite (motor2b, LOW);
}
if (y>520 ){
digitalWrite (motor2a, HIGH);
digitalWrite (motor2b, LOW);
}
if (y<480 ){
digitalWrite (motor2a, LOW);
digitalWrite (motor2b, HIGH);
}
}
Köszönöm a segítséget. Ezzel a programmal,már szinte tökéletesen működik a kis legórobot( gyermekeim nagy örömére). Most már csak a sebesség szabályozását szeretném megoldani. Táblázatból beolvasott értékekre gondoltam(10 érték előre 10 érték hátra), egy ilyen kis robotnak 10-10 sebesség szerintem bőven elég. Természetesen, ha valakinek van jobb ötlete szívesen veszem.
if (x>490 && x <510);
{
digitalWrite (motor1a, LOW);
digitalWrite (motor1b, LOW);
if (y>480 && y<520);
{
digitalWrite (motor2a, LOW);
digitalWrite (motor2b, LOW);
}
Ezeket a részeket azért kellet beleírnom mert a középállású potenciométerek nem pontosan 512-es értéket adtak vissza. Ezekkel az értékekkel minden bekapcsoláskor álló motorokat kapok.
int motor1a=7; // L239D 2 motor1a
int motor1b=12; // L239D 7 motor1b
int pwm2=11; // L239D 9 PWM2
int motor2b=8; // L239D 10 motor2b
int motor2a=4; // L239D 15 motor2a
int pot1=A4; // potentiometer connected to analog pin 4
int pot2=A5; // potentiometer connected to analog pin 5
int x; // variable to store the read value
int y; // variable to store the read value
void setup(){
pinMode (motor1a,OUTPUT); //L239D motor1a
pinMode (motor1b,OUTPUT); //L239D motor1b
pinMode (motor2a, OUTPUT); //L239D motor2a
pinMode (motor2b, OUTPUT); //L239D motor2b
pinMode (pwm1, OUTPUT); //L239D PWM1
pinMode (pwm2, OUTPUT); //L239D PWM2
pinMode (pot1, INPUT); //joystick 1
pinMode (pot2, INPUT); //joystick 2
}
void loop(){
x= analogRead(pot1);
byte x1=x/4;
if (x<0 && x>512){
byte x2=x1-256*-1;
analogWrite(pwm2,x2);
}
else
{
analogWrite(pwm2,x1);
}
if (x>490 && x <510);
{
digitalWrite (motor1a, LOW);
digitalWrite (motor1b, LOW);
}
if (x>510 ){
digitalWrite (motor1a, HIGH);
digitalWrite (motor1b, LOW);
}
if (x<490 ){
digitalWrite (motor1a, LOW);
digitalWrite (motor1b, HIGH);
}
y= analogRead(pot2);
byte y1=y/4;
if (x>0 && x<512){
byte y2=y1-256*-1;
analogWrite(pwm1,y2);
}
else {
analogWrite(pwm1,y1);
}
if (y>480 && y<520);
{
digitalWrite (motor2a, LOW);
digitalWrite (motor2b, LOW);
}
if (y>520 ){
digitalWrite (motor2a, HIGH);
digitalWrite (motor2b, LOW);
}
if (y<480 ){
digitalWrite (motor2a, LOW);
digitalWrite (motor2b, HIGH);
}
}
Köszönöm a segítséget. Ezzel a programmal,már szinte tökéletesen működik a kis legórobot( gyermekeim nagy örömére). Most már csak a sebesség szabályozását szeretném megoldani. Táblázatból beolvasott értékekre gondoltam(10 érték előre 10 érték hátra), egy ilyen kis robotnak 10-10 sebesség szerintem bőven elég. Természetesen, ha valakinek van jobb ötlete szívesen veszem.
if (x>490 && x <510);
{
digitalWrite (motor1a, LOW);
digitalWrite (motor1b, LOW);
if (y>480 && y<520);
{
digitalWrite (motor2a, LOW);
digitalWrite (motor2b, LOW);
}
Ezeket a részeket azért kellet beleírnom mert a középállású potenciométerek nem pontosan 512-es értéket adtak vissza. Ezekkel az értékekkel minden bekapcsoláskor álló motorokat kapok.
bakter
Kód: Egész kijelölése
int pwm1=6; // L239D 1 PWM1
int motor1a=7; // L239D 2 motor1a
int motor1b=12; // L239D 7 motor1b
int pwm2=11; // L239D 9 PWM2
int motor2b=8; // L239D 10 motor2b
int motor2a=4; // L239D 15 motor2a
int pot1=A4; // potentiometer connected to analog pin 4
int pot2=A5; // potentiometer connected to analog pin 5
int x; // variable to store the read value
int y; // variable to store the read value
void setup(){
pinMode (motor1a,OUTPUT); //L239D motor1a
pinMode (motor1b,OUTPUT); //L239D motor1b
pinMode (motor2a, OUTPUT); //L239D motor2a
pinMode (motor2b, OUTPUT); //L239D motor2b
pinMode (pwm1, OUTPUT); //L239D PWM1
pinMode (pwm2, OUTPUT); //L239D PWM2
pinMode (pot1, INPUT); //joystick 1
pinMode (pot2, INPUT); //joystick 2
}
void loop(){
x= analogRead(pot1);
byte x1=x/4;
y= analogRead(pot2);
byte y1=y/4;
if (x<0 && x>512){
byte x2=x1-256*-1;
analogWrite(pwm2,x2);
}
else
{
analogWrite(pwm2,x1);
}
if (x>490 && x <510);
{
digitalWrite (motor1a, LOW);
digitalWrite (motor1b, LOW);
}
if (x>0 && x<512){
byte y2=y1-256*-1;
analogWrite(pwm1,y2);
}
else {
analogWrite(pwm1,y1);
}
if (y>480 && y<520);
{
digitalWrite (motor2a, LOW);
digitalWrite (motor2b, LOW);
}
if (x>490 && x <510);
{
digitalWrite (motor1a, LOW);
digitalWrite (motor1b, LOW);
}
if (x>510 ){
digitalWrite (motor1a, HIGH);
digitalWrite (motor1b, LOW);
}
if (x<490 ){
digitalWrite (motor1a, LOW);
digitalWrite (motor1b, HIGH);
}
if (y>520 ){
digitalWrite (motor2a, HIGH);
digitalWrite (motor2b, LOW);
}
if (y<480 ){
digitalWrite (motor2a, LOW);
digitalWrite (motor2b, HIGH);
}
}
Átrendeztem kicsit a programot. A (kiszámítanám a hozzájuk tartozó PWM értékeket), részt a még nem megfelelő tudásszint miatt még nem biztos, hogy menni fog, de tanulok, fórum és könyvek stb. segítségével egyre jobban megy az AVR programozás
bakter
Ha még nem érted! Éppen ezért kellene komentezni a programot!
Így szerintem jobban olvasható lenne!
És próbáld meg egységesen használni a „{}” zárójelezést.
Mert könnyebb lesz később a hibakeresés!

Kód: Egész kijelölése
// Main
void loop(){
// Vezérlők beolvasása
x = Analogread(pot1);
Byte X1 = X / 4;
y= analogRead(pot2);
byte y1=y/4;
// sebesség (PWM) számítás Ez még csak 1 irányba megy?
if (x<0 && x>512){
byte x2=x1-256*-1;
analogWrite(pwm2,x2);
}
else
{
analogWrite(pwm2,x1);
}
if (y>0 && y<512){
byte y2=y1-256*-1;
analogWrite(pwm1,y2);
}
else
{
analogWrite(pwm1,y1);
}
// Motorok irányba kapcsolása
if (x>490 && x <510);
{
digitalWrite (motor1a, LOW);
digitalWrite (motor1b, LOW);
}
if (y>480 && y<520);
{
digitalWrite (motor2a, LOW);
digitalWrite (motor2b, LOW);
}
if (x>490 && x <510);
{
digitalWrite (motor1a, LOW);
digitalWrite (motor1b, LOW);
}
if (x>510 ){
digitalWrite (motor1a, HIGH);
digitalWrite (motor1b, LOW);
}
if (x<490 ){
digitalWrite (motor1a, LOW);
digitalWrite (motor1b, HIGH);
}
if (y>520 ){
digitalWrite (motor2a, HIGH);
digitalWrite (motor2b, LOW);
}
if (y<480 ){
digitalWrite (motor2a, LOW);
digitalWrite (motor2b, HIGH);
}
}
És próbáld meg egységesen használni a „{}” zárójelezést.
Mert könnyebb lesz később a hibakeresés!
Kód: Egész kijelölése
int k1 = 0; // mikrokapcsoló1 Bal oldal Ardunio Uno (digitális 0)
int k2 = 1; // mikrokapcsoló2 Jobb oldal Ardunio Uno (digitális 1)
int be = 5; // Bekapcsoló nyomógomb Ardunio Uno (digitális 5)
int motor1a =7; // L239D 2 motor1a Ardunio Uno (digitális 7)
int motor1b = 12; // L239D 7 motor1b Ardunio Uno (digitális 12)
int motor2b = 8; // L239D 10 motor2b Ardunio Uno (digitális 8)
int motor2a = 4; // L239D 15 motor2a Ardunio Uno (digitális 4)
int pwm1 = 6; // L239D 1 PWM1 Ardunio Uno (digitális 6)
int pwm2 = 11; // L239D 9 PWM2 Ardunio Uno (digitális 11)
void setup()
{
digitalWrite(k1, HIGH); //Belső felhuzóellenállás bekaocsolása (digitális 0) , ami alapbeállitás szerint bemenet
digitalWrite(k2, HIGH); //Belső felhuzóellenállás bekaocsolása (digitális 1) , ami alapbeállitás szerint bemenet
digitalWrite(be, HIGH); //Belső felhuzóellenállás bekaocsolása (digitális) 5 , ami alapbeállitás szerint bemenet
pinMode (motor1a,OUTPUT); //L239D motor1a (digitális 7) beállitása kimenetnek
pinMode (motor1b,OUTPUT); //L239D motor1b (digitális 12) beállitása kimenetnek
pinMode (motor2a, OUTPUT); //L239D motor2a (digitális 4) beállitása kimenetnek
pinMode (motor2b, OUTPUT); //L239D motor2b (digitális 8) beállitása kimenetnek
pinMode (pwm1, OUTPUT); //Motor1 (digitális 6) inditás beállitása kimenetnek
pinMode (pwm2, OUTPUT); //Motor2 (digitális 11) inditás beállitása kimenetnek
}
void loop()
{
if (digitalRead(be) == LOW) //Bekapcsoló nyomógomb vizsgálata
{
digitalWrite(pwm1, HIGH); //Motor1 bekapcsolása ha be nyomogombot megnyomták
digitalWrite(pwm2, HIGH); //Motor2 bekapcsolása ha be nyomogombot megnyomták
}
if (digitalRead(k1) == HIGH) //k1 mikrokapcsoló vizsgálata
{ //Motor1 irányának vezérlése
digitalWrite (motor1a, HIGH); //Motor1 előre ha k1 mikrokapcsoló nincs benyomva
digitalWrite (motor1b, LOW);
}
else
{
digitalWrite (motor1a, LOW); //Mindkét motor hátra 0.8 mp-ig ha k1 mikrokapcsolót megnyomták
digitalWrite (motor1b,HIGH );
digitalWrite (motor2a, LOW);
digitalWrite (motor2b, HIGH);
delay(800);
digitalWrite (motor1a,LOW ); //Fordulás jobbra 1 mp-ig ha k1 mikrokapcsolót megnyomták
digitalWrite (motor1b, HIGH);
digitalWrite (motor2a, HIGH);
digitalWrite (motor2b, LOW);
delay(1000);
}
if (digitalRead(k2) == HIGH) //k2 mikrokapcsoló vizsgálata
{ //Motor2 irányának vezérlése
digitalWrite (motor2a, HIGH); //Motor2 előre ha k2 mikrokapcsoló nincs benyomva
digitalWrite (motor2b, LOW);
}
else
{
digitalWrite (motor2a, LOW); //Mindkét motor hátra 0.8 mp-ig ha k2 mikrokapcsolót megnyomták
digitalWrite (motor2b, HIGH);
digitalWrite (motor1a, LOW);
digitalWrite (motor1b,HIGH );
delay(800);
digitalWrite (motor2a, LOW); //Fordulás balra 1 mp-ig ha k2 mikrokapcsolót megnyomták
digitalWrite (motor2b, HIGH);
digitalWrite (motor1a, HIGH);
digitalWrite (motor1b, LOW);
delay(1000);
}
}bakter