- Katılım
- 4 Nisan 2020
- Mesajlar
- 3.401
- Çözümler
- 16
Buton ile LED yakmayı başardım ama kodlarından ve devreden hiçbir şey anlamadım. Yardım lütfen. @SideWinder @cengover_ekin
İlgili video
İlgili video
int kodu ne oluyor hocam?pinMode ile o çıkışın ne iş yapmasını seçiyoruz. Örneğin pinMode(13. OUTPUT); bu 13. dijital pini çıkış olarak kullanacağımız anlamına geliyor. INPUT olsaydı okumam için kullanacaktık.
digitalWrite komutu seçtiğimiz pine dijital olarak güç verir 1 ve 0 mantığı ile çalıştığı için ya 5V ya da 0V verir.
if (digitalRead(x) == true) {digitalWrite(y, OUTPUT);}
#define Buton 8
#define Led 10
int buton_durumu = 0;
void setup() {
pinMode(Buton, INPUT);
pinMode(Led, OUTPUT);
}
void loop() {
buton_durumu = digitalRead(Buton);
if(buton_durumu == 1)
digitalWrite(Led,HIGH);
else
digitalWrite(Led,LOW);
}
#define
genellikle pin gibi sabit değişkenleri tanımlamak için kullanılır. Burada da Button
ve Led
değişkenleri, ilgili devre elemanlarının bağlandığı portları temsil etmek için kullanılmış.int
değişken tanımlamak için kullanılır. 3 temel değişken vardır:int buton_durumu = 0;
kodu, buton_durumu
adında bir değişken oluşturuyor. Bu değişkenin amacı, butonun basılı olup olmadığını kontrol etmek ve kaydetmek.void setup()
kısmında, pin giriş ve çıkışlarını ayarlıyoruz. GPIO pinlerinin veri mi alacağı yoksa veri mi göndereceğini belirtmemiz gerek. Bu durumda, Buton
pini giriş, Led
pini çıkış oluyor. Çünkü butondan veri gelecek, LED'i yakmak içinse enerji göndermemiz gerekecek.void loop()
kısmına:void loop()
, genellikle en son çalışan ve sonsuza kadar tekrarlayan master fonksiyondur. Yani kartın yapmak istediği şeyi buraya yazarsın.digital...
adlı iki fonksiyon var: digitalWrite
ve digitalRead
.digitalWrite
çıkış olarak ayarlanmış pine veri göndermeyi sağlarken, digitalRead
giriş olarak ayarlanmış pinden gelen veriyi okumayı sağlar.digitalRead
fonksiyonu temelde iki değer döner: HIGH
ya da LOW
. Eğer okunan portta akım varsa bu HIGH
olur, eğer yoksa LOW
.LOW
olarak dönecek.HIGH
olarak okumuş olacağız.HIGH
değeri okunacak ve LED yanacak, basılı değilken LOW
değeri okunacak ve LED yakılmayacak.HIGH
'ın int
karşılığı 1, LOW
'un int
karşılığı 0'dır.#define LED 10
#define Button 8
int buttonState = 0;
void setup() {
pinMode(LED, OUTPUT);
pinMode(Button, INPUT_PULLUP);
}
void loop() {
buttonState = digitalRead(Button);
if (buttonState == LOW) {
digitalWrite(LED, LOW);
delay (1000);
} else {
digitalWrite(LED, HIGH);
}
}
Hocam vallahi Robotistan derslerinden hiçbir şey anlamadım. Benim için Arduino öğrenebileceğim türkçe kaynak ve kanal önerileri yapar mısınız?Temel kod elemanlarına buradan bakabilirsin. Buton, basit görünse bile karmaşık bir koddur. Birden fazla teknik içerir.
Arduino Reference - Arduino Reference
The Arduino programming language Reference, organized into Functions, Variable and Constant, and Structure keywords.www.arduino.cc
Mesela mevcut kodda, butona basılıyken yanar LED, elini çektiğinde söner. Ama bu kodla bastığın zaman açılır, tekrar basınca söner:
C-like:#define LED 10 #define Button 8 int buttonState = 0; void setup() { pinMode(LED, OUTPUT); pinMode(Button, INPUT_PULLUP); } void loop() { buttonState = digitalRead(Button); if (buttonState == LOW) { digitalWrite(LED, LOW); delay (1000); } else { digitalWrite(LED, HIGH); } }
Bu sitenin çalışmasını sağlamak için gerekli çerezleri ve deneyiminizi iyileştirmek için isteğe bağlı çerezleri kullanıyoruz.