לפני שנמשיך לשאר החיישנים חייבים לשחק קצת עם לדים (Leds) , יש המון הסברים ודוגמאות בנושא ואחד הדברים הבסיסיים בעבודה עם Arduino, אני לא אזבל לכם במוח יותר מידי, סה"כ מדובר במשהו מאוד פשוט, במאמר זה נעבור על 2 סוגים שונים של Leds , הראשון הוא הסטנדרטי , הרגיל והמשעמם, השני הוא RGB ("אני רואה צבעים").
עבודה עם Led סטנדרטי
דרישות:
- Arduino Uno
- Wire
- Resistors 330 Ohm
- Bridges
ל Leds הסטנדרטים יש 2 רגליים (+\-) עבור המתח, את רגל החיובית ניתן לזהות בכך שהיא הרגל הארוכה, לה מתחבר נגד 330 Ohm שמתחבר ל Digital Pin , את הרגל הקצרה נחבר לכניסת GND ב Arduino.
ניתן להשתמש ב Bridges (גשרים) על מנת לחבר את כל הלדים לנקודת GND אחת.
מבנה סופי
קוד הדגמה:
//set arduino pins
int pinA =5;
int pinB =6;
int pinC =7;
int pinD =8;
int pinE =9;
int pinF =10;
int pinG =11;
int pinH =12;
int pinI =13;
void setup()
{
//set pins as ouput
pinMode(pinA,OUTPUT);
pinMode(pinB,OUTPUT);
pinMode(pinC,OUTPUT);
pinMode(pinD,OUTPUT);
pinMode(pinE,OUTPUT);
pinMode(pinF,OUTPUT);
pinMode(pinG,OUTPUT);
pinMode(pinH,OUTPUT);
pinMode(pinI,OUTPUT);
}
void loop()
{
//change each led to high => on and low => off
//using delay between switching
digitalWrite(pinA,HIGH);
delay(100);
digitalWrite(pinA,LOW);
delay(100);
digitalWrite(pinB,HIGH);
delay(100);
digitalWrite(pinB,LOW);
delay(100);
digitalWrite(pinC,HIGH);
delay(100);
digitalWrite(pinC,LOW);
delay(100);
digitalWrite(pinD,HIGH);
delay(100);
digitalWrite(pinD,LOW);
delay(100);
digitalWrite(pinE,HIGH);
delay(100);
digitalWrite(pinE,LOW);
delay(100);
digitalWrite(pinF,HIGH);
delay(100);
digitalWrite(pinF,LOW);
delay(100);
digitalWrite(pinG,HIGH);
delay(100);
digitalWrite(pinG,LOW);
delay(100);
digitalWrite(pinH,HIGH);
delay(100);
digitalWrite(pinH,LOW);
delay(100);
digitalWrite(pinI,HIGH);
delay(100);
digitalWrite(pinI,LOW);
delay(100);
}
דרישות:
- Arduino Uno
- Wire
- 3 Resistors 330 Ohm
- RGB Led
פה העסק קצת שונה עבור כל ערוץ צבע (שבעצם רגל) מתחבר ל Resistor , הרגל הארוכה מסמנת כרגל השלילית שמתחברת ל GND.
מבנה סופי
יאללה דיסקו!
קוד דוגמה:
//set pins in the arduino
const int RED_LED_PIN = 1;
const int GREEN_LED_PIN = 2;
const int BLUE_LED_PIN =3;
//init value for each channel
int red = 0;
int green = 0;
int blue = 0;
//delay
const int display_timeout = 100;
void setup(){}
void loop()
{
//change the green channel
// mixing with the red channel
for(green = 0; green <= 255; green+=5)
{
red = 255 - green;
analogWrite(GREEN_LED_PIN,green);
analogWrite(RED_LED_PIN,red);
delay(display_timeout);
}
//change the blue channel
// mixing with the green channel
for(blue = 0; blue <= 255; blue+=5 )
{
green = 255 - blue;
analogWrite(BLUE_LED_PIN,blue);
analogWrite(GREEN_LED_PIN,green);
delay(display_timeout);
}
//change the red channel
// mixing with the blue channel
for(red = 0; red <= 255; red+=5)
{
blue = 255 - red;
analogWrite(RED_LED_PIN,red);
analogWrite(BLUE_LED_PIN,blue);
delay(display_timeout);
}
}
סיכום:
ראינו כאן משהו מאוד פשוט אבל הכרחי בכל הקשור לחווית המשתמש במוצר שלכם.
סרט הדגמה:
אין תגובות:
הוסף רשומת תגובה