יום שישי, 20 באפריל 2012

Arduino Leds Guide



לפני שנמשיך לשאר החיישנים חייבים לשחק קצת עם לדים (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);
  
    

}

עבודה עם Led RGB

דרישות:

  • 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);
    }
    
}



סיכום:
ראינו כאן משהו מאוד פשוט אבל הכרחי בכל הקשור לחווית המשתמש במוצר שלכם.


סרט הדגמה:




אין תגובות:

הוסף רשומת תגובה