יש כמה טריקים עם ארדואינו או קיצורי דרך שאפשר לעשות , את חלקם אתם בטח מכירים אבל אולי נחדש לכם משהו.
היפוך פין toggle
אם רוצים להפוך רגל של ארדואינו מהמצב העכשווי שלה למצב ההפוך, כלומר אם היא על LOW להפוך אותה ל HIGH ואם היא ב HIGH להפוך אותה ל LOW כל מה שצריך לעשות זה להכניס את השורה הבאה:
digitalWrite(pin, !digitalRead(pin));
באותה שורה הארדואינו מקבל קלט מהפין ואז הופך אותו למצב הנגדי, בלי שום צורך לשמור מידע במשתנים או משהו כזה.
שימוש בפינים אנלוגיים כדיגיטליים
כל הרגליים A0-A5 יכולות לשמש כקלט/פלט דיגיטלי כמו הרגליים הדיגיטליות . כותבים את השורה לדוגמה :
pinMode(A2, OUTPUT); digitalRead(A2, HIGH);
וזה הכל, נוספו לנו עוד 6 רגליים.
נגדי pullup
כשמחברים אמצעי קלט כמו כפתור לארדואינו אנחנו נתקלים בבעייה מסוימת. כשלא לוחצים על הכפתור הוא נמצא במצב “ציפה” כלומר לפעמים הוא על HIGH ולפעמים על LOW . כדי לפתור את זה מחברים נגד PULL DOWN לאדמה או נגד PULLUP ל5 וולט כדי לתת לו ברירת מחדל וערך נגד כזה הוא בדרך כלל 10K. מה שטוב בארדואינו זה שיש לכל רגל נגד PULLUP מובנה וכל מה צריך זה להפעיל אותו בקוד. הקוד לכך הוא :
pinMode(pin, INPUT_PULLUP);
עכשיו הרגל מקבלת 5 וולט באופן קבוע וכשלוחצים על הכפתור(שמחובר בין הרגל לאדמה) מצב הרגל הופך ל LOW. רק לא לשכוח כשבודקים את הרגל לבדוק שהיא ב LOW ולא ב HIGH:
if(digitalRead(pin) == LOW);
כתיבה בשפת C
אפשר לכתוב בסביבת הפיתוח של ארדואינו ישירות ב C . הנה פה לדוגמה אנחנו מהבהים נורה לשנייה אחת ברגל 13 שהיא רגל PB5 בבקר:
#include <avr/io.h> #include <util/delay.h> #define BLINK_DELAY_MS 1000 int main (void){ // set pin 13 for output DDRB |= _BV(DDB5); while(1) { // set pin 13 high to turn led on PORTB |= _BV(PORTB5); _delay_ms(BLINK_DELAY_MS); // set pin 13 low to turn led off PORTB &= ~_BV(PORTB5); _delay_ms(BLINK_DELAY_MS); } }
גיליתם עוד טריקים שאפשר לעשות עם ארדואינו? שתפו בתגובות