Arduino UNO’nun en temel özelliklerinden birisi led ve buton kontrolüdür. Butona basıldığı zaman ledin yanması gibi en temel özellikler burada bulunmaktadır.
KONU
5 led 3 buton ile farklı farklı şekillerde
yakmak. 1.buton ile 200ms aralığında ilk önce
1.led yanacak söndükten sonra 2.led yanacak
şekilde ayarlanacaktır. 2.buton ile 5.led
yanacak sonrasında yanmaya devam ederken
4.led yanacak şekilde ayarlanacaktır. 3.buton
ise hepsini yanıp sönecek şekilde 10 defa
çalışacak şekilde ayarlayacaktır.
MALZEMELER
1 adet Arduino Uno
5 adet Led
5 adet Led için Direnç
3 adet Buton için Direnç
3 adet Buton
pinMode(13, OUTPUT);
Bu satır, arduino üzerindeki 13 numaralı pini çıkış verecek şekilde ayarlıyor. Eğer kullanacağımız pin çıkış veya giriş olarak belirlenmez ise programın devamında yazacağımız giriş veya çıkış fonksiyonları, o pini kullanamaz. Yani output yerine input yazarsak ledimiz çalışmaz . Fakat bunun yanında inputu butonumuz için kullanabiliriz çünkü giren bir değer var.
digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000);
Bu kısım ise öncelikle 13 numaralı pine HIGH seviyesine yani high yerine 1 yazabiliriz , 5V’a ayarlıyor, 1000 milisaniye (1 saniyeye eşittir) hiçbir işlem yapmadan bekliyor ve bu sefer 13 numaralı pini LOW yani 0 değerini. 0V veya toprak hattı seviyesine ayarlıyor. Bu işlemi yaptıktan sonra mikrokontrolcü, delay fonksiyonu sayesinde tekrardan 1 saniye hiçbir işlem yapmadan bekliyor. Sonuç olarak ledimiz yanıp sönmüş oluyor.
Detaylı anlatım videomuzda mevcuttur.
ARDUINO UNO 7 Segment Display 0-99 (2 transistör 2 potansiyometre)
Arduino uno yedi segment display 0-99 bizler için tasarlanmış birer sayı sayma parçasıdır. Girilen kodlara bağlı olarak eş zamanlı veya zamana odaklı çalıştırılabilir. Bunun yanında yazılarda bu şekilde yazılabilinmektedir.
KONU
Bir Arduino üzerinde 3 buton 2 potansiyometre kullanılarak 2
adet segment display’i buton veya potansiyometre
değerlerine göre ileri veya geri belirlenen hızda sayan
devrenin kurulumu.
MALZEMELER
1 adet Arduino Uno
2 adet 7 Segment Display
12 adet Direnç
3 adet Buton
2 adet Transistör
2 adet Potansiyometre
int a = 7;
int b = 8;
int c = 2;
int d = 3;
int e = 4;
int f = 6;
int g = 5;
int transistors[] = {10, 9};
int leftCounter = 0;
int rightCounter = 0;
int baslamab = 13; // baslama butonu
int ilerib = 12; // ileri butonu
int gerib = 11; // geri butonu
int potdeger = 0;
int sonpotdeger = 0;
int sure;
int podPin1=A0;
int podDeger2;
int anahtar = 2;
int arr[10][7] = {
{1, 1, 1, 1, 1, 1, 0}, // 0
{0, 1, 1, 0, 0, 0, 0}, // 1
{1, 1, 0, 1, 1, 0, 1}, // 2
{1, 1, 1, 1, 0, 0, 1}, // 3
{0, 1, 1, 0, 0, 1, 1}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{0, 0, 1, 1, 1, 1, 1}, // 6
{1, 1, 1, 0, 0, 0, 0}, // 7
{1, 1, 1, 1, 1, 1, 1}, // 8
{1, 1, 1, 0, 0, 1, 1} // 9
};
void setup()
{
pinMode(baslamab,INPUT);
pinMode(ilerib,INPUT);
pinMode(gerib,INPUT);
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(transistors[0], OUTPUT);
pinMode(transistors[1], OUTPUT);
Serial.begin(9600);
}
void loop() {
podDeger2=analogRead(podPin1);
sure=map(podDeger2,1,123,10,100);
potdeger=analogRead(A1);
if (digitalRead(baslamab)== 1) {
anahtar=2;
}
if (digitalRead(ilerib)== 1) {
anahtar=0;
}
if (digitalRead(gerib)== 1) {
anahtar=1;
}
if ((ilerib==1)||(potdeger<1024 && potdeger>512)){
anahtar=4;
}
if ((gerib==1)||(potdeger<512 && potdeger>0)){
anahtar=3;
}
switch (anahtar){
case 0:
if(ilerib){
RakamYaz(leftCounter, rightCounter);
delay(sure);
rightCounter++;
if (rightCounter > 9){
rightCounter = 0;
leftCounter++;
if(leftCounter > 9)
leftCounter = 0;
} break;
}
case 1:
if(gerib){
RakamYaz(leftCounter, rightCounter);
delay(sure);
rightCounter--;
if (rightCounter < 0){
rightCounter = 9;
leftCounter--;
if(leftCounter < 0)
leftCounter = 9;
} break;
}
case 2:
kapat();
break;
case 3:
if(ilerib){
RakamYaz(leftCounter, rightCounter);
delay(sure);
rightCounter++;
if (rightCounter > 9){
rightCounter = 0;
leftCounter++;
if(leftCounter > 9)
leftCounter = 0;
} break;
}
case 4:
if(gerib){
RakamYaz(leftCounter, rightCounter);
delay(sure);
rightCounter--;
if (rightCounter < 0){
rightCounter = 9;
leftCounter--;
if(leftCounter < 0)
leftCounter = 9;
} break;
}
}
}
void RakamYaz(int left, int right)
{
digitalWrite(transistors[0], HIGH);
digitalWrite(transistors[1], LOW);
write(right);
delay(sure);
digitalWrite(transistors[0], LOW);
digitalWrite(transistors[1], HIGH);
write(left);
}
void write(int i){
digitalWrite(a, arr[i][0]);
digitalWrite(b, arr[i][1]);
digitalWrite(c, arr[i][2]);
digitalWrite(d, arr[i][3]);
digitalWrite(e, arr[i][4]);
digitalWrite(f, arr[i][5]);
digitalWrite(g, arr[i][6]);
}
void kapat() {
digitalWrite(transistors[0], 0);
digitalWrite(transistors[1], 0);
}
Bir sonraki Arduino konusu için — Tıklayınız