Buduję projekt na Arduino Nano. W nim używam pinu 3 jako wyjścia PWM. Jeśli jednak podam do niego wartości mniejsze niż 255, pin w ogóle nie wyprowadza żadnego napięcia.
Zgodnie z tym schematem, pin 3 to PWM:
Testowałem go na dwóch płytach, nie działa na żadnej z nich. To też nie jest mój szkic (przetestowałem go z prostym analogWrite();
).
To jest kod:
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); }
Jaki może być tego powód?
Komentarze
- Poproś o przeniesienie do wymiany stosów arduino
- @JorenVaes jak mam to zrobić?
- Brak kodu. O czym na świecie mamy spekulować?
- @Bort, przepraszam, dodałem kod.
- Spróbuj zamienić #define E1 3 na #define E1 PD3 i zobacz, czy to pomaga.
Odpowiedź
Spróbuj zamienić #define E1 3
na #define E1 PD3
i zobacz, czy to pomoże.
PBx
, PCx
i PDx
oznaczenia są jednoznaczne, więc używanie ich jest prawie bezpiecznym zakładem.
Komentarze
Odpowiedź
Trzeci pin (pin 3) nie jest pinem PWM, jest to pin RESET
.
Piny PWM to 6, 8, 9, 12, 13 i 14 (dla Arduino Nano).
Zobacz ten obraz :
mg src = „https://i.stack.imgur.com/8flVu.png” alt = „Nano pinout” title = „Nano pinout”>
Komentarze
- Skrócony adres URL przekierowuje do obrazów . google.co.in/… , więc nie ma co go zastępować.
- @ Carolene zgodnie ze schematem podanym przez OP, pin 3 oznacza cyfrowy pin 3 = PORTD 3. Część odpowiedzi " Piny PWM to 6, 8, 9, 12, 13 i 14 (dla Arduino Nano) " jest całkowicie mylące.
Odpowiedź
Zamień digitalWrite na analogWrite (pin, wartość )
Komentarze
- Nie ' Nie wiem, dlaczego myślisz, że to zadziała. Czy przeczytałeś zaakceptowaną odpowiedź powyżej lub komentarze pod pytaniem?
Odpowiedź
Użyj pinMode(NNN, OUTPUT)
at setup()
?
Komentarze
- Cześć Denis, witaj do wymiany stosów! Chociaż możesz mieć rację, proszę rozszerzyć swoją odpowiedź, ponieważ w obecnym kształcie bardziej pasowałaby jako komentarz. Przeczytaj Jak napisać dobrą odpowiedź?
- To jest dobra odpowiedź, brakuje TRYBU PIN.
PD3
to#define
d jak 3, a numer pinu Arduino to również 3. Spróbuj użyćPB2
zamiast numeru pinu Arduino 10, jeśli nie ' mi nie wierzysz. Nie są nawet jednoznaczne. Te desygnatory są po prostu zdefiniowane jako numery bitów (np.PB3
to także 3).