Sunday, 14 February 2016

Mengaktifkan sebuah LED dengan Button dan Arduino

Ini contoh bahwa kita dapat menggunakan Arduino untuk menyalakan LED ketika kita menekan tombol? 
Kita akan membutuhkan Arduino Board, sebuah resistor 560Ω, lampu LED dan kode contoh di bawah ini.

Skema

  1. /* sketch 1
  2. turn on a LED when the button is pressed
  3. turn it off when the button is not pressed (or released)
  4. */
  5. int pinButton = 8; //the pin where we connect the button
  6. int LED = 2; //the pin we connect the LED
  7.  
  8. void setup() {
  9. pinMode(pinButton, INPUT); //set the button pin as INPUT
  10. pinMode(LED, OUTPUT); //set the LED pin as OUTPUT
  11. }
  12.  
  13. void loop() {
  14. int stateButton = digitalRead(pinButton); //read the state of the button
  15. if(stateButton == 1) { //if is pressed
  16. digitalWrite(LED, HIGH); //write 1 or HIGH to led pin
  17. } else { //if not pressed
  18. digitalWrite(LED, LOW); //write 0 or low to led pin
  19. }
  20. }



Bagaimana kode bekerja? 
kita menghubungkan tombol di pin 8 pada arduino dengan Tegangan 5 volt dan pada pin 8 juga kita hubungkan resistor 10K menuju ke GND. Lalu LED terhubung ke pin 2 menggunakan resistor 560 ohm secara seri ke GND

Di Dalam fungsi setup () kita mengatur pin 8 sebagai INPUT dan pin 2 sebagai OUTPUT.Dalam fungsi loop () kita membaca nilai dari pin 8 dan menyimpannya dalam stateButton variabel. 
Menggunakan fungsi if () membuat beberapa keputusan: jika tombol ditekan (stateButton == 1) maka OUTPUT pada pin 2 menjadi tinggi (HIGH), 
fungsi else, jika stateButton tidak 1 (tidak ditekan) atau apapun kondisinya selain tinggi (HIGH) membuat OUTPUT pada pin 2 menjadi rendah (LOW)


Jika kita ingin menyalakan LED tetap ON ketika tombol di lepas, kita hanya perlu menghilangkan kode fungsi else (seperti yang kita lihat di sketsa 2, tetapi kita tidak akan dapat mengubahnya LED menjadi OFF atau mati tanpa menggunakan sketsa ketiga. kecuali kita memutuskan sumber daya Arduinonya.

  1. /* sketch 2
  2. turn on a LED when the button is pressed and let it on when the button is released
  3. */
  4. int pinButton = 8; //the pin where we connect the button
  5. int LED = 2; //the pin we connect the LED
  6.  
  7. void setup() {
  8. pinMode(pinButton, INPUT); //set the button pin as INPUT
  9. pinMode(LED, OUTPUT); //set the LED pin as OUTPUT
  10. }
  11.  
  12. void loop() {
  13. int stateButton = digitalRead(pinButton); //read the state of the button
  14. if(stateButton == 1) { //if is pressed
  15. digitalWrite(LED, HIGH); //write 1 or HIGH to led pin
  16. }
  17. }


Dalam kode ini kita bisa melihat bagaimana kita dapat menyalakan LED ketika kita menekan tombol kemudian mematikannya bila kita menekan tombol lagi.Untuk Keadaan awal LED mati (LOW) tetapi jika kita ingin mengubah keadaan awal LED menjadi menyala (HIGH) kita harus mengubah int stateLED = LOW; menjadi int stateLED = HIGH;

  1. /* sketch 3
  2. turn on a LED when the button is pressed and let it on
  3. until the button is pressed again
  4. */
  5. int pinButton = 8;
  6. int LED = 2;
  7. int stateLED = LOW;
  8. int stateButton;
  9. int previous = LOW;
  10. long time = 0;
  11. long debounce = 200;
  12.  
  13. void setup() {
  14. pinMode(pinButton, INPUT);
  15. pinMode(LED, OUTPUT);
  16. }
  17.  
  18. void loop() {
  19. stateButton = digitalRead(pinButton);
  20. if(stateButton == HIGH && previous == LOW && millis() - time > debounce) {
  21. if(stateLED == HIGH){
  22. stateLED = LOW;
  23. } else {
  24. stateLED = HIGH;
  25. }
  26. time = millis();
  27. }
  28. digitalWrite(LED, stateLED);
  29. previous == stateButton;
  30. }

0 comments:

Post a Comment