Ich baue ein Projekt mit einem Arduino Nano. Darin verwende ich Pin 3 als PWM-Ausgang. Wenn ich jedoch Werte unter 255 versorge, gibt der Pin überhaupt keine Spannung aus.
Gemäß diesem Diagramm ist Pin 3 PWM:
Ich habe es auf zwei Karten getestet, es funktioniert auf keiner. Es ist auch nicht meine Skizze (ich habe sie mit einem einfachen analogWrite();
getestet).
Dies ist der Code:
void setup() { // put your setup code here, to run once: #define E1 3 // Enable Pin for motor 1 #define E2 10 // Enable Pin for motor 2 #define I1 4 // Control pin 1 for motor 1 #define I2 2 // Control pin 2 for motor 1 #define I3 A1 // Control pin 1 for motor 2 #define I4 A0 // Control pin 2 for motor 2 } void loop() { // put your main code here, to run repeatedly: // I use differential steering, speed is important analogWrite(E1, 100); // Run in full speed analogWrite(E2, 100); // Run in full speed // always go forward digitalWrite(I1, LOW); digitalWrite(I2, HIGH); digitalWrite(I3, LOW); digitalWrite(I4, HIGH); }
Was könnte der Grund dafür sein?
Kommentare
- Fordern Sie an, dies in den Arduino-Stapelaustausch zu verschieben
- @JorenVaes Wie mache ich das?
- Es wird kein Code angezeigt. Worüber in aller Welt sollen wir dann spekulieren?
- @Bort Entschuldigung, fügte den Code hinzu.
- Versuchen Sie, #define E1 3 durch #define E1 PD3 zu ersetzen, und prüfen Sie, ob dies der Fall ist hilft.
Antwort
Versuchen Sie, #define E1 3
durch #define E1 PD3
und prüfen Sie, ob dies hilfreich ist.
Die PBx
, PCx
und PDx
Bezeichnungen sind eindeutig, daher ist die Verwendung dieser Bezeichnungen ziemlich sicher.
Kommentare
- Dies ist ein absolut falscher Rat. Arduino-Funktionen verwenden Arduino-Pin-Nummern. In diesem Fall hat es einfach funktioniert, weil
PD3
#define
d als 3 ist und die Arduino-Pin-Nummer ebenfalls 3 ist. Versuchen Sie,PB2
anstelle der Arduino-PIN Nummer 10, wenn Sie ' mir nicht glauben. Sie sind nicht einmal eindeutig. Diese Bezeichner werden nur als Bitnummern definiert (z. B.PB3
ist ebenfalls 3).
Antwort
Der dritte Pin (Pin 3) ist kein PWM-Pin, sondern der RESET
-Pin.
Die PWM-Pins sind 6, 8, 9, 12, 13 und 14 (für Arduino Nano).
Siehe dieses Bild :
mg src = „https://i.stack.imgur.com/8flVu.png“ alt = „Nano pinout“ title = „Nano-Pinbelegung“>
Kommentare
- Verkürzte URL-Weiterleitungen zu Bildern. google.co.in/… Es macht also nicht viel Sinn, es zu ersetzen.
- @Carolene gemäß dem vom OP angegebenen Schema, Pin 3 bedeutet digitaler Pin 3 = PORTD 3. Der Teil Ihrer Antwort " Die PWM-Pins sind 6, 8, 9, 12, 13 und 14 (für Arduino Nano) " ist völlig irreführend.
Antwort
Ersetzen Sie digitalWrite durch analogWrite (Pin, Wert )
Kommentare
- Ich ' bin mir nicht sicher, warum dies Ihrer Meinung nach funktionieren würde. Haben Sie die oben akzeptierte Antwort oder die Kommentare unter der Frage gelesen?
Antwort
Verwenden Sie pinMode(NNN, OUTPUT)
unter setup()
?
Kommentare
- Hallo Denis, und willkommen Exchange stapeln! Obwohl Sie vielleicht richtig liegen, erweitern Sie bitte Ihre Antwort, da sie derzeit eher als Kommentar geeignet wäre. Bitte lesen Sie Wie schreibe ich eine gute Antwort?
- Dies ist eine gute Antwort, der PIN-MODUS fehlt.