Stavím projekt pomocí Arduino Nano. V tom používám pin 3 jako výstup PWM. Pokud však do něj zadám hodnoty nižší než 255, pin nevydá vůbec žádné napětí.
Podle tohoto diagramu je pin 3 PWM:
Testoval jsem to na dvou deskách, nefunguje na žádném. Není to ani můj náčrtek (testoval jsem to pomocí jednoduchého analogWrite();
).
Toto je kód:
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); }
Co by mohlo být příčinou?
Komentáře
- Požádat o přesunutí do arduino stackexchange
- @JorenVaes, jak to mám udělat?
- Nezobrazuje se žádný kód. O čem tedy na světě máme spekulovat?
- @Bort promiň, přidal jsem kód.
- Zkuste nahradit #define E1 3 za #define E1 PD3 a zjistěte, zda to pomáhá.
Odpověď
Zkuste nahradit #define E1 3
znakem #define E1 PD3
a zjistěte, zda to pomůže.
PBx
, PCx
a PDx
označení jsou jednoznačná, takže jejich použití je skoro bezpečná sázka.
Komentáře
Odpověď
Třetí pin (pin 3) není pin PWM, je to RESET
pin.
PWM piny jsou 6, 8, 9, 12, 13 a 14 (pro Arduino Nano).
Viz tento obrázek :
mg src = „https://i.stack.imgur.com/8flVu.png“ alt = „Nano pinout“ title = „Nano pinout“>
Komentáře
- Zkrácené URL přesměruje na obrázky. google.co.in/… takže jeho výměna nemá moc smysl.
- @Carolene podle schématu uvedeného v OP, pin 3 znamená digitální pin 3 = PORTD 3. Část vaší odpovědi " PWM piny jsou 6, 8, 9, 12, 13 a 14 (pro Arduino Nano) " je zcela zavádějící.
Odpověď
Nahraďte digitalWrite za analogWrite (pin, hodnota )
Komentáře
- Nejsem si jistý, proč si myslíte, že by to fungovalo, '. Přečetli jste si výše přijatou odpověď nebo komentáře pod otázkou?
Odpověď
Použijte pinMode(NNN, OUTPUT)
at setup()
?
Komentáře
- Ahoj Denisi, vítejte na Stack Exchange! I když můžete mít pravdu, prosím, rozbalte svou odpověď, protože v současné podobě by se to více hodilo jako komentář. Přečtěte si Jak mohu napsat dobrou odpověď?
- Toto je dobrá odpověď, REŽIM PIN chybí.
PD3
je#define
d jako 3 a číslo PIN Arduina je také 3. Zkuste použítPB2
místo pinu Arduino číslo 10, pokud mi nevěříte '. Nejsou ani jednoznačné. Tito označení jsou právě definována jako čísla bitů (např.PB3
je také 3).