Inhaltsverzeichnis:
- Schritt 1: Tiefes Eintauchen in Datenblatt und Quellcode - Taktgeschwindigkeit
- Schritt 2: Einstellen von UART-Registern
- Schritt 3: PWM-Einstellungen
- Schritt 4: Ergebnis
Video: Atmega128A Proportionalmotorantrieb - ATMEL ICE AVR Timer UART PWM Steuerung - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:17
In diesem anweisbaren erkläre ich Ihnen, wie man
- einen Gleichstrommotor mit PWM ansteuern
- kommunizieren über UART
- Timer-Interrupts verarbeiten
Zuallererst verwenden wir ein Entwicklungsboard für das AVR-Core-System, das Sie bei Aliexpress für etwa 4 USD finden können. Der Link zum Entwicklungsboard ist hier. Wir werden auch Atmel ICE Debugger und Atmel Studio verwenden, um unsere Software zu programmieren und zu debuggen.
Schritt 1: Tiefes Eintauchen in Datenblatt und Quellcode - Taktgeschwindigkeit
In 1. dem Aufzählungspunkt definieren wir unsere Quarzfrequenz, die wir auf der Entwicklungstafel sehen können
Schritt 2: Einstellen von UART-Registern
Um mit UART zu kommunizieren, müssen Sie die USART-Baudratenregister – UBRRnL und UBRRnH korrekt einstellen. Sie können es selbst berechnen oder Sie können den Online-Rechner verwenden, um einfach die richtigen Werte zu erhalten
Online-Rechner
ruemohr.org/~ircjunk/avr/baudcalc/avrbaudca…
Der MYUBBR-Wert wird dann berechnet. Im Register UCSR0B aktivieren wir RXEN0 (recv enable) TXEN0 (transmit enable) und RXCIE0 (RX für Interrupt). Im Register UCSR0C wählen wir die 8-Bit-Zeichengröße.
Nachdem wir das RX-Interrupt-Bit gesetzt haben, sollten wir die ISR-Funktion für USART0_RX_vect hinzufügen
ISR (USART0_RX_vect) { char rcvChar = UDR0; if(rcvChar != '\n') { Puffer[PufferIndex] = rcvChar; PufferIndex++; } }
Sie sollten keine Geschäftslogik in Ihrer Interrupt-Service-Routine verwenden. Sie müssen die Funktion so schnell wie möglich zurückgeben.
Schritt 3: PWM-Einstellungen
In der Funktion initPWM stellen wir unseren CPU Clock Scaler, Timer/Counter-Modus als Fast PWM ein und stellen sein Verhalten mit COM-Bits ein
Wir sollten auch den Gleichstrommotor an den OC2-Pin anschließen, der in Tabelle 66 angegeben ist. Vergleichen Sie den Ausgangsmodus, den schnellen PWM-Modus in unserem Datenblatt. Sie werden auch sehen, dass der OC2-Pin (OC2/OC1C) PB7 ist
Schritt 4: Ergebnis
Wenn Sie den Quellcode im Anhang hochladen.
Sie können einen neuen PWM-Wert (0-255) von UART eingeben (Sie können den seriellen Arduino-Anschluss verwenden), um die DC-Motordrehzahl einzustellen.
Empfohlen:
Einen Timer selbst erstellen – wikiHow
So erstellen Sie selbst einen Timer: Timer werden heute in vielen Anwendungen verwendet, z. B. beim Laden von Elektrofahrzeugen mit Timing-Ladeschutz und einigen funktionalen Netzwerk-Timing-Controllern. Wie macht man einen Timer?
So fügen Sie jedem Projekt eine WLAN-Steuerung hinzu -- ESP32-Anfängerleitfaden: 5 Schritte
So fügen Sie jedem Projekt eine WLAN-Steuerung hinzu || ESP32-Anfängerhandbuch: In diesem Projekt zeige ich Ihnen, wie einfach / schwierig es ist, einen ESP32 mit der Arduino IDE zu verwenden, um jedem Elektronikprojekt eine WiFi-Steuerung hinzuzufügen. Unterwegs zeige ich Ihnen, wie Sie mit dem ESP32 einen einfachen WLAN-Server erstellen und wie Sie
GRUNDLAGEN DER UART-KOMMUNIKATION: 16 Schritte
GRUNDLAGEN DER UART-KOMMUNIKATION: Erinnern Sie sich, als Drucker, Mäuse und Modems dicke Kabel mit diesen riesigen, klobigen Steckern hatten? Die, die buchstäblich in Ihren Computer geschraubt werden mussten? Diese Geräte verwendeten wahrscheinlich UARTs, um mit Ihrem Computer zu kommunizieren. Während USB fast
EINFACHER CARBOT -- ARDUINO -- BLUETOOTH-STEUERUNG -- TUTORIAL: 10 Schritte (mit Bildern)
EINFACHER CARBOT || ARDUINO || BLUETOOTH-STEUERUNG || TUTORIAL: IN DIESEM ANLEITUNG ZEIGE ICH, WIE MAN EINEN EINFACHEN BOT HERSTELLT, DER VON IHREM SMARTPHONE ÜBER BLUETOOTHPARTS GEBAUT WIRD:☻ARDUINO☻2X GETRIEBEMOTOREN☻HC-05 BLUETOOTH MODUL☻LAPTOP ODER PC ICH HABE EINE POWER BANK VERWENDET
SERVO-Steuerung lernen (auf einen Blick): 6 Schritte
SERVO-Steuerung lernen (auf einen Blick): In diesem Modul lernen Sie die Steuerung eines mit Arduino kompatiblen Mikro- oder Mini-Servos. Ein Servomotor wird im Allgemeinen in allen Automatisierungsprojekten verwendet, die bewegliche Teile haben. Es spielt eine sehr wichtige Rolle Rolle in der Robotik, die präzise Bewegung