Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
et:arduino:motors:project1 [2017/04/18 12:56] Somepubet:arduino:motors:project1 [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
-~~PB~~ 
 ====== Projekt 5 Alalisvoolumootor ja selle kiirus  ====== ====== Projekt 5 Alalisvoolumootor ja selle kiirus  ======
  
-Antud projekt eeldab, et kasutatakse juba kokku pandud kahe mootoriga roboti komplekti. Mootori draiveri ühendamisel tuleb jälgida, et sisendsignaalid oleks ühendatud õigetesse Arduino plaadi viikudesse. Vastasel juhul draiver ei toimi korrektselt. Mootorite juhtmed ühendada draiveri kruviklemmide külge.\\ +Antud projekt eeldab, et kasutatakse juba kokku pandud kahe mootoriga roboti komplekti. Mootorite juhtmooduli ühendamisel tuleb jälgida, et sisendsignaalid oleks ühendatud õigetesse Arduino plaadi viikudesse. Vastasel juhul juhtmoodul ei toimi korrektselt. Mootorite juhtmed ühendada juhtmooduli kruviklemmide külge.  
- +Juhtsignaalide juhtmed ühendada Arduino plaadiga järgnevalt
-Ühendused on järgnevad+  * Juhtmoodul A-1A -> Arduino D10 
-  * Draiver A-1A -> Arduino D10 +  * Juhtmoodul A-1B -> Arduino D12 
-  * Draiver A-1B -> Arduino D12 +  * Juhtmoodul B-1A -> Arduino D11 
-  * Draiver B-1A -> Arduino D11 +  * Juhtmoodul B-1B -> Arduino D13 
-  * Draiver B-2A -> Arduino D13 +**NB!** Jälgida ühendamisel juhtmooduli toite polaarsust.
-**NB!** Jälgida mootori draiveri toite polaarsust. Valesti ühendamisel draiver lakkab töötamast.+
  
 {{:et:arduino:motors:projekt5.jpg?700|}} {{:et:arduino:motors:projekt5.jpg?700|}}
 ===== Näide #5.1 Alalisvoolumootor ja H-sild ===== ===== Näide #5.1 Alalisvoolumootor ja H-sild =====
-Mootori juhtimiseks on soovitav eelnevalt uurida H-silla tööpõhimõtet. Tööpõhimõtte tundmine lihtsustab näidetest arusaamist. Kui mõni mootor peaks juhtumisi pöörlema vastupidiselt programmis määratud suunale, siis vahetada omavahel selle mootori draiveri poolsed juhtmed.\\ +Mootori juhtimiseks on soovitav eelnevalt uurida H-silla tööpõhimõtet. Tööpõhimõtte tundmine lihtsustab näidetest arusaamist. Kui mõni mootor peaks juhtumisi pöörlema vastupidiselt programmis määratud suunale, siis vahetada omavahel selle mootori juhtmed juhtmooduli küljes.\\ 
-Programmis alustame ühendusviikude määramisega ning seejärel määrame vastavad viigud ka väljundiks. Mootorite juhtimiseks tekitame juurde funktsiooni //mootorid(vasak, parem)//. Funktsiooni sisendiks on 2 parameetrit, milleks on vasaku ja parema mootori pöörlemise suunad. Vastavalt suunale muudetakse väljundite olekuid madalaks või kõrgeks. Väljundite muutmise loogika tuleneb mootori draiveri andmelehest. Võib katsetada peatsüklis mootorite juhtimise käsku erinevate manöövrite sooritamiseks.+Programmis alustame ühendusviikude määramisega ning seejärel määrame vastavad viigud ka väljundiks. Mootorite juhtimiseks tekitame juurde funktsiooni //mootorid(vasak, parem)//. Funktsiooni sisendiks on 2 parameetrit, milleks on vasaku ja parema mootori pöörlemise suunad. Vastavalt suunale muudetakse väljundite olekuid madalaks või kõrgeks. Väljundite muutmise loogika tuleneb mootori juhtmooduli andmelehest. Katsetada peatsüklis mootorite juhtimise käsu kombinatsioone erinevate manöövrite sooritamiseks.
  
 <code c> <code c>
-/* +/* Nimetus: Näide #5.1
-Nimetus: Näide #5.1+
 Kirjeldus: Alalisvoolumootor ja H-sild Kirjeldus: Alalisvoolumootor ja H-sild
 */ */
- +// Mootori viikude määramine juhtmooduli juhtimiseks.
-// Mootori viikude määramine draiveri juhtimiseks.+
 // Mootori liikumissuund sõltub ka mootori ühendamise polaarsusest. // Mootori liikumissuund sõltub ka mootori ühendamise polaarsusest.
-const int vasak_A = 10; // Draiveri viik A-1A +const int vasak_A = 10; // juhtmooduli viik A-1A 
-const int vasak_B = 12; // Draiveri viik A-1B +const int vasak_B = 12; // juhtmooduli viik A-1B 
-const int parem_A = 11; // Draiveri viik B-1A +const int parem_A = 11; // juhtmooduli viik B-1A 
-const int parem_B = 13; // Draiveri viik B-2A+const int parem_B = 13; // juhtmooduli viik B-2A
    
 void setup()  void setup() 
 { {
-// Mootori juhtviikude väljundiks seadistamine +  // Mootori juhtviikude väljundiks seadistamine 
-pinMode(vasak_A,OUTPUT); +  pinMode(vasak_A,OUTPUT); 
-pinMode(vasak_B,OUTPUT); +  pinMode(vasak_B,OUTPUT); 
-pinMode(parem_A,OUTPUT); +  pinMode(parem_A,OUTPUT); 
-pinMode(parem_B,OUTPUT);+  pinMode(parem_B,OUTPUT);
  
-// Mootori algne peatamine +  mootorid(0,0); // Mootori algne peatamine 
-mootorid(0,0);  +  delay(2000); // Viide, et robot laua pealt kohe plehku ei paneks
- +
-// Viide, et robot laua pealt kohe plehku ei paneks +
-delay(2000); +
 } }
  
 void loop()  void loop() 
 { {
-  // Robot sõidab otse 
-  mootorid(1,1);  
      
-  // Viite ajal robot jääb liikuma eelnevalt määratud suunda +  mootorid(1,1); // Robot sõidab otse 
-  delay(2000); +  delay(2000); // Viide - robot säilitab viite pikkuse liikumise
      
-  // Robot keerab vasakule +  mootorid(-1,1); // Robot keerab vasakule 
-  mootorid(-1,1);  +  delay(500);  // Viide - robot säilitab viite pikkuse liikumise
-   +
-  // Viite ajal robot jääb liikuma eelnevalt määratud suunda +
-  delay(500); +
 } }
  
Line 62: Line 50:
 void mootorid(int vasak, int parem) void mootorid(int vasak, int parem)
 { {
- 
   // Vasak mootor   // Vasak mootor
   if(vasak == 1)   if(vasak == 1)
Line 99: Line 86:
 </code> </code>
  
-~~PB~~ 
 ===== Näide #5.2 Alalisvoolumootori kiirus ===== ===== Näide #5.2 Alalisvoolumootori kiirus =====
-Mootori kiiruse juhtimiseks on vaja kasutada pulsilaiusmodulatsioon ehk PWM signaali. Tegemist on praktiliselt sama signaali tüübiga, mida kasutasime LED-i ereduse juhtimisel. Kasutades PWM signaali, lülitatakse viik pidevalt kõrgesse ja madalasse olekusse, mis tekitab mootorile toitepingest madalama keskmise pinge. Näiteks toitepinge 5 V ja 50% töötsükliga PWM signaaliga puhul tekib mootori klemmidele keskmine pinge 2,5 V.\\ +Mootori kiiruse juhtimiseks on vaja pulsilaiusmodulatsioon ehk PWM signaali. Tegemist on praktiliselt sama signaali tüübiga, mida kasutasime LED-i ereduse juhtimisel. PWM signaaliga lülitatakse viiku pidevalt kõrgesse ja madalasse olekusse, mis tekitab mootorile toitepingest madalama keskmise pinge. Näiteks toitepinge 5 V ja 50% töötsükliga PWM signaali puhul tekib mootori klemmidele keskmine pinge 2,5 V.\\ 
-Programmi töö on sarnane näitele #5.1, kus mootoreid juhiti diskreetselt ehk liigub või ei liigu. Antud näites juhime lisaks mootori kiirust ning selleks on vaja kasutada käsku //analogWrite()//, mis tekitab soovitud töötsükliga PWM signaali. Antud käsk toimib vaid kindlatel Arduino viikudel (UNO-l: D3, D5, D6, D9, D10 ja D11). Käsu sisendiks saab kasutada väärtusi 0-255 ehk 8 bitti. Sellest tulenevalt on ka mootorite juhtimise funktsiooni parameetrite vahemik -255 kuni 255, kus negatiivne arv näitab tagurpidi liikumist ja null seisma jäämist. Võib eksperimenteerida erinevate kiiruste ja suundadega.+Programmi töö on sarnane näitele #5.1, kus mootoreid juhiti diskreetselt ehk liigub või ei liigu. Antud näites juhime lisaks mootori kiirust ning selleks on vaja kasutada käsku //analogWrite//, mis tekitab soovitud töötsükliga PWM signaali. Antud käsk toimib vaid kindlatel Arduino viikudel (UNO-l: D3, D5, D6, D9, D10 ja D11). Käsu sisendiks saab kasutada väärtusi 0-255 ehk 8 bitti. Sellest tulenevalt on ka mootorite juhtimise funktsiooni parameetrite vahemik -255 kuni 255, kus negatiivne arv näitab tagurpidi liikumist ja null seisma jäämist. Eksperimenteerida erinevate kiiruste ja suundadega.
  
 <code c> <code c>
-/* +/* Nimetus: Näide #5.2 Alalisvoolumootori kiiruse reguleerimine 
-Nimetus: Näide #5.2 Alalisvoolumootori kiiruse reguleerimine +   Kirjeldus: Programm demonstreerib alalisvoolumootori kiiruse juhtimist  
-Kirjeldus: Programm demonstreerib alalisvoolumootori kiiruse juhtimist  +              L9110 mootori juhtmooduli näitel.
-           L9110 draiveri näitel.+
 */ */
-// Mootori viikude määramine draiveri juhtimiseks+// Mootori viikude määramine juhtmooduli juhtimiseks
 // Mootori liikumissuund sõltub ka mootori ühendamise polaarsusest // Mootori liikumissuund sõltub ka mootori ühendamise polaarsusest
-const int vasak_A = 10; // Draiveri viik A-1A +const int vasak_A = 10; // juhtmooduli viik A-1A 
-const int vasak_B = 12; // Draiveri viik A-1B +const int vasak_B = 12; // juhtmooduli viik A-1B 
-const int parem_A = 11; // Draiveri viik B-1A +const int parem_A = 11; // juhtmooduli viik B-1A 
-const int parem_B = 13; // Draiveri viik B-2B+const int parem_B = 13; // juhtmooduli viik B-2B
    
 void setup()  void setup() 
Line 131: Line 116:
  {  {
   mootorid(100,100); // Robot sõidab otse aeglaselt   mootorid(100,100); // Robot sõidab otse aeglaselt
-  delay(2000); // Viite ajal robot jääb liikuma eelnevalt määratud suunda+  delay(2000); // Viide - robot säilitab viite pikkuse liikumise
   mootorid(100,255); // Robot keerab sujuvalt vasakule   mootorid(100,255); // Robot keerab sujuvalt vasakule
-  delay(2000); // Viite ajal robot jääb liikuma eelnevalt määratud suunda+  delay(2000); // Viide - robot säilitab viite pikkuse liikumise
   mootorid(-255,-255); // Robot tagurdab kiiresti   mootorid(-255,-255); // Robot tagurdab kiiresti
-  delay(2000); // Viite ajal robot jääb liikuma eelnevalt määratud suunda+  delay(2000); // Viide - robot säilitab viite pikkuse liikumise
   mootorid(-255,-100); // Robot tagurdab sujuvalt paremale   mootorid(-255,-100); // Robot tagurdab sujuvalt paremale
-  delay(2000); // Viite ajal robot jääb liikuma eelnevalt määratud suunda+  delay(2000); // Viide - robot säilitab viite pikkuse liikumise
   mootorid(150,-150); // Robot keerab kohapeal paremale   mootorid(150,-150); // Robot keerab kohapeal paremale
-  delay(2000); // Viite ajal robot jääb liikuma eelnevalt määratud suunda+  delay(2000); // Viide - robot säilitab viite pikkuse liikumise
 } }
  
- 
- 
-  
 // Funktsioon mootori liikumissuuna ja kiiruse määramiseks // Funktsioon mootori liikumissuuna ja kiiruse määramiseks
 void mootorid(int vasak, int parem) void mootorid(int vasak, int parem)
et/arduino/motors/project1.1492520187.txt.gz · Last modified: 2020/07/20 09:00 (external edit)
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0