Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Tässä ohjeessa selitän sinulle kuinka
- ohjaa tasavirtamoottoria PWM: llä
- kommunikoida UARTin kautta
- kahva -ajastin keskeyttää
Ensinnäkin käytämme AVR Core -järjestelmän kehityskorttia, jonka löydät Aliexpressistä noin 4 USD: n linkistä. Käytämme myös Atmel ICE Debuggeria ja Atmel Studiota ohjelmistomme ohjelmointiin ja virheenkorjaukseen.
Vaihe 1: Syvä sukellus tietolomakkeeseen ja lähdekoodiin - kellon nopeus
1. luodissa määritämme kristallitaajuutemme, josta voimme nähdä kehityskortin
Vaihe 2: UART -rekisterien asettaminen
Jotta voit kommunikoida UARTin kanssa, sinun on asetettava USART Baud Rate Registers - UBRRnL ja UBRRnH oikein, voit laskea sen itse tai käyttää online -laskinta saadaksesi oikeat arvot helposti
Online -laskin
ruemohr.org/~ircjunk/avr/baudcalc/avrbaudca…
Joten MYUBBR -arvo lasketaan sitten, rekisterissä UCSR0B otamme käyttöön RXEN0 (recv enable) TXEN0 (lähetyksen salliminen) ja RXCIE0 (RX keskeytykselle).
Kun olemme asettaneet RX -keskeytysbitin, meidän on lisättävä ISR -funktio USART0_RX_vect: lle
ISR (USART0_RX_vect) {char rcvChar = UDR0; jos (rcvChar! = '\ n') {puskuri [bufferIndex] = rcvChar; puskuriindeksi ++; }}
Sinun ei pitäisi tehdä mitään liiketoimintalogiikkaa keskeytyspalvelurutiinissasi. Sinun on palautettava toiminto mahdollisimman pian.
Vaihe 3: PWM -asetukset
Toiminnossa initPWM asetamme suorittimen kelloskaalaimen, ajastin-/laskuritilaksi nopean PWM -toiminnon ja asetamme sen käyttäytymisen COM -biteillä
Meidän tulisi myös kytkeä tasavirtamoottori OC2 -nastaan, joka on määritelty taulukossa 66. Vertaa tuotetiedot, nopea PWM -tila tietolomakkeessamme, näet myös, että OC2 -nasta on (OC2/OC1C) PB7
Vaihe 4: Tulos
Kun lataat lähdekoodin liitteessä.
Voit syöttää uuden PWM-arvon (0-255) UART: sta (voit käyttää arduino-sarjaporttiliitintä) DC-moottorin nopeuden asettamiseen.