Jestem nowym użytkownikiem Arduino i mam Arduino Uno. Do zrealizowanych przeze mnie projektów użyłem tylko cyfrowych pinów.
Buduję mały pojazd, który wykorzystuje silniki krokowe. Skończyły mi się szpilki do sterowania silnikami tego pojazdu. Do czego służą piny analogowe? Czy mogę używać pinów analogowych do sterowania resztą silników krokowych, które podłączam do Arduino, czy też muszę kupować większe Arduino niż Arduino Uno do sterowania tym urządzeniem?
Zawsze możesz użyć pinów analogowych do zapisu cyfrowego.
digitalRead()
działa na wszystkich pinach. Po prostu zaokrągli otrzymaną wartość analogową i przedstawi ją. JeślianalogRead(A0)
jest większa lub równa 512,digitalRead(A0)
będzie wynosić 1, w przeciwnym razie 0.digitalWrite()
działa na wszystkich pinach, z dozwolonym parametrem 0 lub 1.digitalWrite(A0,0)
jest taki sam jakanalogWrite(A0,0)
idigitalWrite(A0,1)
jest taki sam jakanalogWrite(A0,255)
analogRead()
działa tylko na pinach analogowych. Może przyjmować dowolną wartość z zakresu od 0 do 1023.analogWrite()
działa na wszystkich pinach analogowych i wszystkich pinach cyfrowych PWM . Możesz podać dowolną wartość z zakresu od 0 do 255.Piny analogowe pozwalają odczytywać / zapisywać wartości analogowe - w zasadzie zamiast podawać napięcie 0 lub 5 (jak w przypadku cyfrowej), mogą dawać zakres napięć od 0 do 5 (zarówno jako wejście, jak i wyjście). Należy pamiętać, że napięcie na wyjściu analogowym to tylko napięcie obserwowane za pomocą multimetru. W rzeczywistości piny analogowe wysyłają impulsy sygnałów 0 V i 5 V, aby uzyskać wyjście, które „wygląda” analogowo (jest to PWM).
Jeśli chodzi o liczbę pinów: pamiętaj, że pinów PWM można użyć do wyjścia analogowego. Jeśli zabraknie pinów, możesz użyć multipleksowania, aby uzyskać więcej. Zdobycie kolejnego Arduino nie jest konieczne.
źródło
the Arduino (ATmega) will report HIGH if: a voltage greater than 3.0V is present at the pin (5V boards)
co jest sprzeczne ze stwierdzeniem w tym pościeIf analogRead(A0) is greater than or equal to 512, digitalRead(A0) will be 1, else 0
.Jak wskazał Anindo Ghosh, analogowe piny Arduino mogą być używane jako cyfrowe piny.
Jednak nawet jeśli zabraknie pinów do sterowania silnikami krokowymi, tak naprawdę nie trzeba kupować kolejnej płyty. Możesz po prostu użyć elementu pośredniego, takiego jak rejestr lub multiplekser, do sterowania odpowiednim silnikiem krokowym.
źródło
Jeśli możesz sobie na to pozwolić i naprawdę chcesz, aby praca ze steperem była bardzo łatwa, sprawdź Easy Stepper . Byłem bardzo zadowolony.
Z przykładowej strony kodowej
http://www.sc-fa.com/blog/wp-content/uploads/2013/04/20130414-080645.jpg
Również z tej samej strony, oto przykładowy kod do uruchomienia dwóch silników z dwiema płytami easyystepper, z przyspieszaniem / zwalnianiem: http://www.sc-fa.com/blog/wp-content/uploads/2013/04/20130414- 081018.jpg
źródło