Pin Arduino Nano PWM nie działa

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:

pinout NANO

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

  • To jest absolutnie zła rada. Funkcje Arduino przyjmują numery pinów Arduino. W tym przypadku po prostu zadziałało, ponieważ 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).

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.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *