Arduino miga diodą, ale trochę nietypowo
Zacznijmy od filmu. Proste miganie dioda, ale czy widzicie coś nietypowego w tym układzie:
Jeżeli nie dostrzegłeś/aś tego to zwróć uwagę, że dioda jest podłączona do wejścia analogowego. No to jak to działa? Cóż, to może pytanie pomocnicze: czy wiesz gdzie na Arduino UNO jest port I2C? Jest na wejściu analogowym, na pinach A4 i A5 (UNO R3 ma wyprowadzone to też na dedykowane piny SDA i SCL, ale elektrycznie jest to to samo).
Czy znaczy to, że wejścia analogowe mogą pracować jako normalne wejścia/wyjścia cyfrowe? Tak, dokładnie. Wystarczy tylko ustawić w odpowiedni tryb pracy dane wejście korzystając z pinMode
i można potem korzystać odpowiednio jako wejście czy wyjście. Mają one też wbudowny rezystor pull up jak zwykłe wejścia cyfrowe. Nawet włącza się go tak samo (pinMode(A0, INPUT); digitalWrite(A0,HIGH);
).
Czyli kod działający na Arduino pokazane w tym filmie:
void setup() { pinMode(A0, OUTPUT); } void loop() { digitalWrite(A0, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(A0, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
Po prostu korzystać ze stałych A0-A5. Warto o tym pamiętać jeżeli w naszym projekcie potrzeba nam więcej wejść/wyjść cyfrowych a nie korzystamy z pomiaru napięć.
Stare!
Ale bardzo fajnie, że opisałeś :-)
:) Nie pomyślałem o tym – a zastanawiałem się jak tu uzyskać jeszcze 2-3 I/O: http://www.jarzebski.pl/blog/2013/04/25/arduino-monitoruje-linuksa-monitino-uno.html
Dla kogo stare, dla tego stare ;) szczerze mówiąc zupełnie o tym zapomniałem i to było re-odkrycie ;)
Kornelius: Bardzo ładne rozwiązanie :-)