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:examples:motor:dc [2015/11/11 10:25] heikopikneret:examples:motor:dc [2020/07/20 09:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
-~~PB~~+<pagebreak>
 ====== Alalisvoolumootor ====== ====== Alalisvoolumootor ======
  
Line 37: Line 37:
 Robootikas juhitakse alalisvoolumootoreid mikrokontrolleritega ning kuna need on digitaalsed seadmed, siis on mõistlik ka mootoreid digitaalselt juhtida. See saavutatakse pulsilaiusmodulatsiooni (inglise keeles //Pulse With Modulation//, lühend PWM) abil transistoreid kiiresti sisse - välja lülitades. Kogu energia, mis mootorile antakse jääb seisva mootori ja täiskiirusel pöörleva mootori vahepeale. Avatud oleku aja kirjeldamiseks kasutatakse töötsükli mõistet, mida mõõdetakse protsentides. 0 % tähendab, et transistor on pidevalt suletud asendis ning mootor seisab, 100 % tähendab, et transistor on pidevalt avatud ning mootor pöörleb nominaalkiirusel. PWM-i sagedus peab olema piisavalt kõrge, et mootori pöörlemine oleks võimalikult sujuv ning väljundvõlli katkendlik pöörlemine ei tekitaks lisavibratsioone. Samuti tekitab mootori mähis madalatel sagedustel müra. Seetõttu kasutatakse tavaliselt modulatsioonisagedusi üle 20 kHz. Sagedust piirab transistoride efektiivsus, mis kõrgemate sageduste puhul langeb. Robootikas juhitakse alalisvoolumootoreid mikrokontrolleritega ning kuna need on digitaalsed seadmed, siis on mõistlik ka mootoreid digitaalselt juhtida. See saavutatakse pulsilaiusmodulatsiooni (inglise keeles //Pulse With Modulation//, lühend PWM) abil transistoreid kiiresti sisse - välja lülitades. Kogu energia, mis mootorile antakse jääb seisva mootori ja täiskiirusel pöörleva mootori vahepeale. Avatud oleku aja kirjeldamiseks kasutatakse töötsükli mõistet, mida mõõdetakse protsentides. 0 % tähendab, et transistor on pidevalt suletud asendis ning mootor seisab, 100 % tähendab, et transistor on pidevalt avatud ning mootor pöörleb nominaalkiirusel. PWM-i sagedus peab olema piisavalt kõrge, et mootori pöörlemine oleks võimalikult sujuv ning väljundvõlli katkendlik pöörlemine ei tekitaks lisavibratsioone. Samuti tekitab mootori mähis madalatel sagedustel müra. Seetõttu kasutatakse tavaliselt modulatsioonisagedusi üle 20 kHz. Sagedust piirab transistoride efektiivsus, mis kõrgemate sageduste puhul langeb.
  
-Digitaalsel juhtimisel on võrreldes analoogjuhtimisega mitmed eelised. Peamine eelis mikrokontrolleriga juhitavate süsteemide puhul on see, et vaja on vaid ühte digitaalväljundit ning puudub vajaduse keerulise digitaal-analoog muunduri järele. Samuti on digitaalne juhtimine efektiivsem, kuna energiat muundatakse vähem soojuseks.+Digitaalsel juhtimisel on võrreldes analoogjuhtimisega mitmed eelised. Peamine eelis mikrokontrolleriga juhitavate süsteemide puhul on see, et vaja on vaid ühte digitaalväljundit ning puudub vajadus keerulise digitaal-analoog muunduri järele. Samuti on digitaalne juhtimine efektiivsem, kuna energiat muundatakse vähem soojuseks.
  
 Lihtsustatud juhtimisskeem on näidatud kõrvalasuval joonisel. Lihtsustatud juhtimisskeem on näidatud kõrvalasuval joonisel.
 Juhtpinge Vc tuleb mikrokontrolleri väljundviigult ning lülitab transistori Q sisse-välja umbes 20 kHz sagedusel. Kui transistor Q on sisse lülitatud, liigub kogu vool I läbi mootori M. Sellisel juhul käitub transistor kui suletud lüliti ja pingelang Vq on 0-i lähedane ning mootorile jääb kogu sisendpinge Vdd. Juhtpinge Vc tuleb mikrokontrolleri väljundviigult ning lülitab transistori Q sisse-välja umbes 20 kHz sagedusel. Kui transistor Q on sisse lülitatud, liigub kogu vool I läbi mootori M. Sellisel juhul käitub transistor kui suletud lüliti ja pingelang Vq on 0-i lähedane ning mootorile jääb kogu sisendpinge Vdd.
-~~PB~~+<pagebreak>
 Transistori läbiva koguvõimsuse saab arvutada valemiga: Transistori läbiva koguvõimsuse saab arvutada valemiga:
  
Line 69: Line 69:
 Iga mootorit, mis on ühendatud H-silla külge juhitakse kahe mikrokontrolleri digitaalväljundiga. Mootori kiirust juhitakse taimeritega, mis genereerivad pideva PWM signaali H-sillale, teise viiguga juhitakse mootori pöörlemise suunda. Mootori kiirust juhitakse suhteliste väärtustega 0 - 255, kus 0 tähendab seisvat mootorit ning 255 maksimaalsel kiirusel liikuvat mootorit. Järgnev koodilõik kirjeldab Kodulabor II (ATmega2561) teegis realiseeritud alalisvoolumootorite juhtfunktsioone. Iga mootorit, mis on ühendatud H-silla külge juhitakse kahe mikrokontrolleri digitaalväljundiga. Mootori kiirust juhitakse taimeritega, mis genereerivad pideva PWM signaali H-sillale, teise viiguga juhitakse mootori pöörlemise suunda. Mootori kiirust juhitakse suhteliste väärtustega 0 - 255, kus 0 tähendab seisvat mootorit ning 255 maksimaalsel kiirusel liikuvat mootorit. Järgnev koodilõik kirjeldab Kodulabor II (ATmega2561) teegis realiseeritud alalisvoolumootorite juhtfunktsioone.
  
-~~PB~~+<pagebreak>
 <code c> <code c>
 // Mootorite ühendusviigud // Mootorite ühendusviigud
Line 161: Line 161:
  while (1)  while (1)
   {   {
-    // Potentsiomeetri 4 keskmise lugemi võtmine ja salvestamine muutujasse +           // Potentsiomeetri 4 keskmise lugemi võtmine ja salvestamine muutujasse 
-    speed = adc_get_average_value(15, 4); +            
-    // Kuna potentsiomeetri väärtus on 12-bitine kuid DC mootori +           // Kodulabor II 
-    // funktsioon on 8-bitine, tuleb ADC väärtus muundada 8-bitiseks  +     // Kuna potentsiomeetri väärtus on 10-bitine kuid DC mootori 
-    // jagades ADC väärtus kaheksaga või nihutades bitinihutustehtega +     // funktsioon on 8-bitine, tuleb ADC väärtus muundada 8-bitiseks  
-    // ADC väärtust paremale kohta (>>8+     // jagades ADC väärtus neljaga või nihutades bitinihutustehtega 
-    dcmotor_drive_pwm(1, 1, speed/8);+     // ADC väärtust paremale 2 kohta (>>2) 
 +    // speed = adc_get_average_value(3, 4)/4; 
 + 
 +    // Kodulabor III 
 +     // Kuna potentsiomeetri väärtus on 12-bitine kuid DC mootori 
 +     // funktsioon on 8-bitine, tuleb ADC väärtus muundada 8-bitiseks  
 +     // jagades ADC väärtus kaheksaga või nihutades bitinihutustehtega 
 +     // ADC väärtust paremale kohta (>>3) 
 +       speed = adc_get_average_value(15, 4)/8; 
 + 
 +         //DC mootori juhtimine saadud potentsiomeetri väärtuse kaudu 
 +    dcmotor_drive_pwm(1, 1, speed);
     dcmotor_drive_pwm(2, 1, 128);     dcmotor_drive_pwm(2, 1, 128);
   }   }
 } }
 </code> </code>
et/examples/motor/dc.1447237503.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