Cuprins:
- Pasul 1: Scufundare profundă în foaia de date și codul sursă - Viteza ceasului
- Pasul 2: Setarea registrelor UART
- Pasul 3: Setări PWM
- Pasul 4: Rezultat
Video: Conducere proporțională a motorului Atmega128A - Timer ATMEL ICE AVR Control UART PWM: 4 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
În acest instructiv, vă voi explica cum să faceți acest lucru
- controlați un motor DC cu PWM
- comunica prin UART
- întrerupe temporizatorul de mâner
În primul rând, vom folosi o placă de dezvoltare a sistemului AVR Core pe care o puteți găsi pe Aliexpress în jur de 4 USD. Link-ul pentru placa de dezvoltare este aici. De asemenea, vom folosi Atmel ICE Debugger și Atmel Studio pentru a programa și depana software-ul nostru.
Pasul 1: Scufundare profundă în foaia de date și codul sursă - Viteza ceasului
În 1. glonțul ne definim frecvența cristalului unde putem vedea pe placa de dezvoltare
Pasul 2: Setarea registrelor UART
Pentru a comunica cu UART trebuie să setați USART Baud Rate Registers - UBRRnL și UBRRnH corect, îl puteți calcula singur sau puteți utiliza calculatorul online pentru a obține cu ușurință valorile corecte
Calculator online
ruemohr.org/~ircjunk/avr/baudcalc/avrbaudca…
Deci valoarea MYUBBR este calculată atunci, în registrul UCSR0B activăm RXEN0 (activare recv) TXEN0 (activare transmisie) și RXCIE0 (RX pentru întrerupere). În registrul UCSR0C selectăm dimensiunea caracterelor de 8 biți.
După ce setăm bitul de întrerupere RX, ar trebui să adăugăm funcția ISR pentru USART0_RX_vect
ISR (USART0_RX_vect) {char rcvChar = UDR0; if (rcvChar! = '\ n') {buffer [bufferIndex] = rcvChar; bufferIndex ++; }}
Nu ar trebui să faceți nicio logică de afaceri în rutina de servicii de întrerupere. Trebuie să faceți funcția să revină cât mai curând posibil.
Pasul 3: Setări PWM
În funcția initPWM setăm scalerul de ceas al procesorului, modul Timer / Counter ca PWM rapid și setăm comportamentul său cu biți COM
De asemenea, ar trebui să conectăm motorul de curent continuu la pinul OC2 care este specificat în tabelul 66. Comparați modul de ieșire, modul PWM rapid în foaia noastră de date, veți vedea, de asemenea, că pinul OC2 este (OC2 / OC1C) PB7
Pasul 4: Rezultat
Când încărcați codul sursă în atașament.
Puteți introduce o nouă valoare PWM (0-255) din UART (puteți utiliza terminalul de port serial arduino) pentru a seta viteza motorului de curent continuu.
Recomandat:
Arduino Control Viteza și direcția motorului DC folosind un potențiometru, afișaj OLED și butoane: 6 pași
Arduino Control Viteza și direcția motorului DC utilizând un potențiometru, afișaj OLED și butoane: În acest tutorial vom învăța cum să folosiți un driver L298N DC MOTOR CONTROL și un potențiometru pentru a controla viteza și direcția unui motor DC cu două butoane și afișarea valorii potențiometrului pe ecranul OLED. Urmăriți un videoclip demonstrativ
Placă de conducere a motorului eficientă din punct de vedere al puterii: 5 pași
Placă de conducere a motorului eficientă din punct de vedere al energiei: Proiectul prezentat este o placă de circuit a motorului pas cu pas / conducătorului de motor cu IC driver de motor SN754410, care include unele caracteristici de economisire a energiei. Placa poate acționa 2 motoare de curent continuu sau un motor pas cu pas cu ajutorul circuitului de punte dual H din IC. SN754410 IC
Circuit de control al vitezei motorului DC: 5 pași
Circuitul de control al turației motorului DC: În acest scurt articol, vom afla cum să formăm un circuit de feedback negativ al turației motorului DC. În principal, vom afla cum funcționează circuitul și ce înseamnă semnalul PWM? și modul în care semnalul PWM este utilizat pentru a regla
Control pozițional unghiular al motorului pas cu pas 28BYJ-48 cu Arduino și joystick analogic: 3 pași
Controlul pozițional unghiular al motorului pas cu pas 28BYJ-48 cu Arduino și joystick analogic: Aceasta este o schemă de control pentru motorul pas cu pas 28BYJ-48 pe care am dezvoltat-o pentru a o folosi ca parte a proiectului meu de disertație din ultimul an. Nu am văzut acest lucru până acum, așa că m-am gândit că voi încărca ceea ce am descoperit. Sperăm că acest lucru va ajuta pe altcineva o
DIRECȚIA ȘI CONTROLUL VITEZEI MOTORULUI CC CU UTILIZAREA LABVIEW (PWM) ȘI ARDUINO: 5 pași
DIRECȚIA ȘI CONTROLUL VITEZEI MOTORULUI CC CU UTILIZAREA LABVIEW (PWM) ȘI ARDUINO: Bună ziua, băieți, în primul rând îmi pare rău pentru engleza mea amuzantă