Dijital etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Dijital etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
15 Mart 2014 Cumartesi
Arduino- Çıkışları 9Volt veya 12 Volt Yapmak
Bildiğiniz üzere Arduino çıkışları 5V olmak üzere tasarlanmış. Fakat bazı devrelerde yönetmek istediğimiz elemanların çalışma voltları 12V,9V olabilmekte. Arduino ile bu elemanları yönetebilmek için mikrodenetleyicimizin ilgili pin çıkışına yandaki devreyi kurduğumuzda çıkışı 12V olarak yani transistörleri kaç volt ile besliyorsak o gerilimde alabileceğiz. Bunu bir nevi DC-DC Inverter olarak da düşünebiliriz .
***Q1 transistörünün NPN,Q2 transistörünün PNP olduğunu gözden kaçırmamakta fayda var.***
Fritzingde 9V batarya bağlayarak bu devreyi çizdim. Gerilim değerini değiştirerek istediğiniz gerilimi çıkıştan alabilirsiniz...
Bu devreyi öğrenmemde yardımcı olan arkadaşım Ebru YAVUZ'a teşekkür ederim :)...
Etiketler:
12V,
12V Output,
Antalya,
Arduino,
Arduino Tutorial,
Arduino UNO,
DC-DC ınverter,
Digital,
Dijital,
Inverter Arduino,
Karadeniz Teknik Üniversitesi,
Microchip,
microprocessor
24 Temmuz 2013 Çarşamba
Arduino - Dijital Girişler (Butonlar)
Butonlar mikroişlemcilerle yapılan her proje önemli elemanlardır. Yazılan programları çalıştırmada ya da çalışan programlara anında müdahele için butonlar kullanılmaktadır. Açıkçası yazılan program sonrası uygulamaya geçildiğinde ve butona basıldığında bir led in yanması bile ayrı bir zevk veriyor insana :).
Butonlar önemli çünkü mikroişlemciler ile yapacağımız herhangi bir robotik uygulamada, robota bu butonlar sayesinde yön verme gibi bir seçeneğimiz bulunmakta. Oyuncak arabalar için git/gel komutları gibi.
Arduino'dan önce kullanmış olduğum MSP430 Launchpad üzerinde kendi butonu bulunmaktaydı ve geriye sadece onu programa okutmak kalıyordu. Arduino UNO'da sadece reset butonu olduğu için bu butonu kendimiz harici olarak eklicez.
Butonu şemada görüldüğü gibi +Vin ile toprak arasına bir direnç ile birlikte bağlıcaz.
Butonlar önemli çünkü mikroişlemciler ile yapacağımız herhangi bir robotik uygulamada, robota bu butonlar sayesinde yön verme gibi bir seçeneğimiz bulunmakta. Oyuncak arabalar için git/gel komutları gibi.
Arduino'dan önce kullanmış olduğum MSP430 Launchpad üzerinde kendi butonu bulunmaktaydı ve geriye sadece onu programa okutmak kalıyordu. Arduino UNO'da sadece reset butonu olduğu için bu butonu kendimiz harici olarak eklicez.
Butonu şemada görüldüğü gibi +Vin ile toprak arasına bir direnç ile birlikte bağlıcaz.
Arduino, PC ile seri haberleşme yapabilme özelliğine sahip bir mikroişlemci. Arduino programının üst menüsünde bulunan Tools kısmından Serial Monitor yazan yere tıklarsak seri haberleşmeyi gösterecek olan pencereyi görebiliriz. Elbette ki bu seri haberleşmeyi kullanmamız için gereken bir komutumuz olacak.Bir kez kullanacağımız için bu komutu void setup() içerisinde kullanıcaz.
Serial.begin(9600);
Şemamızdaki devreyi kurduktan sonra aşağıdaki komutları yükleyebiliriz artık mikroişlemcimize.
int buton = 2; // 2.pini isimlendirdik
void setup() {
Serial.begin(9600); //9600 baud hızında seri haberleşme için
pinMode(buton, INPUT_PULLUP); // 2.pinin giriş olduğunu belirttik
}
void loop() {
int butondurumu = digitalRead(buton); //buton durum adında integer bir değeri programa okuttuk ve bunu da butonun durumu olarak belirledik (1 ya da 0)
Serial.println(butondurumu); // Seri Haberleşme ile butonun durumu ekrana yansıtılıyor.
delay(20); // değer okunurken 2 değer arasında ki süre ms.
}
INPUT_PULLUP komutunu kullandım çünkü sadece INPUT komutunu kullandığımda buton değerleri saçmaladı biraz. INPUT_PULLUP komutunu kullandığımda sonuçlarım daha sağlıklı oldu.
Mikroişlemcilerin tipine göre butonların okunması farklılık gösterebiliyor. Arduino'da butona bastığımızda "0", basılmadığında "1" sonucunu alıyoruz.
Seri haberleşme özelliği sayesinde butonun durumunu ekranda görebiliyoruz. 0 ise basılı , 1 ise basılı değil.
Küçük bir uygulama yapalım şimdi. Bir portu input, başka bir portu output olarak kullanalım. Çıkışa led bağlayalım,butona bastığımızda led yansın diğer koşulda da sönük halde kalsın. Devremizi aşağıdaki gibi bağlayalım.
2.pine buton, 4.pine de led bağladık.Komutlar :
int buton = 2; //buton'a 2 sayısı atandı
void setup() {
Serial.begin(9600); //Seri Haberleşme Kodu
pinMode(buton, INPUT_PULLUP); //2.pin giriş oldu
pinMode(4, OUTPUT); //4.pin çıkış oldu
}
void loop() {
int butondurumu = digitalRead(buton); // butondan okunan sonuç butondurumuna atandı
delay(20);
if (butondurumu == 0)
{ digitalWrite (4, HIGH);
Serial.println("LED YANDI");} //buton basılıysa led yanık halde // ve ekrana yansıtılıyor
else
{digitalWrite (4, LOW);
Serial.println("LED SONDU");} //buton basılı değilse led sönük halde ve ekrana yansıtılıyor
}
Videosu da burda.
17 Temmuz 2013 Çarşamba
Arduino - Dijital Çıkışlara Hükmetmek (Led Yakma)
Elektronik dünyasına giriş için bir mikroişlemci seçmemiz gerektiğinden bahsetmiştim . Tercihimi Arduino UNO'dan yana kullandım. Elimde PIC programlayıcım var fakat hazır bir launchpadi olan Arduino ile bu dünyaya giriş yapmak bana daha cazip geldi.
}
void loop()
{
// devamlı tekrarlanarak sırasıyla çalışacak kodları burada yazıyoruz }
Ardunio, kodların yazıldığı sayfaya sketch adını veriyor yani karalama.Setup() ve Loop() bölümeri bu karalamalarda mutlaka olmak zorunda.
{ ilk değerler ve ilk başta bir kere çalışacak kodlarvoid setup ()
}
void loop()
{
// devamlı tekrarlanarak sırasıyla çalışacak kodları burada yazıyoruz }
Bu yazımda Arduino'nun çıkışlarına led bağlayarak, bir kaç örnekle çıkışlara hükmedeceğiz.Yazımda yapacağımız uygulamalardaki malzemeler ise şunlar:
- 4 adet Led (Farklı renklerde olursa güzel olur.)
- Jumper Kablolar
- Direnç (İsteğe bağlı ben şahsen kullanmadım.)
Öncelikle her mikroişlemciye girişte olduğu gibi klasik bir giriş ile yani led flaşör ile giriş yapalım.
Launchpad 10.pinini çıkış olarak aldım ve oraya bir led bağladım. Dileyen ledin önüne direnç de koyabilir.
İsteğimiz şu olacak, led 1 saniye yanacak ve 1 saniye sönecek. Kodlar ve şeması;
void setup() {
// Pinler Çıkış olarak belirleniyor
pinMode(10, OUTPUT); // MAVI LED
}
void loop() {
digitalWrite(10, HIGH); // LED yanik
delay(500); // 500mS bekle
digitalWrite(10, LOW); // LED sonuk
delay(500); // 500ms bekle
}
Biraz daha görsel tabiri caizse cix birşey yapalım :) . 4 adet ledi yanyana sırayla yakalım ve 4'ü aynı anda yanmadan hiçbiri sönmesin. Kodlar ve Şema :
int led1=7;
int led2=8;
int led3=9;
int led4=10;
void setup()
{
pinMode(led1, OUTPUT); //7.pin led1
pinMode(led2,OUTPUT); //8.pin led2
pinMode(led3,OUTPUT); //9.pin led3
pinMode(led4,OUTPUT); //10.pin led4
}
int i;
void loop() {
for(i=0;i<=1;i++)
{
digitalWrite(led1,HIGH); //1.ledi yak
delay(250); // 0.25 saniye bekle
digitalWrite(led2,HIGH); //2.ledi de yak
delay(250); // 0.25 saniye bekle
digitalWrite(led3,HIGH); // 3.ledi de yak
delay(250); // 0.25 saniye bekle
digitalWrite(led4,HIGH); // 4.ledi de yak
}
for(i=0;i<=1;i++)
{
digitalWrite(led1,LOW); //1.ledi söndür
delay(250); //0.25 saniye bekle
digitalWrite(led2,LOW); //2.ledi de söndür
delay(250); //0.25 saniye bekle
digitalWrite(led3,LOW); //3.ledi de söndür
delay(250); //0.25 saniye bekle
digitalWrite(led4,LOW); //4.ledi de söndür
}}
- 4 adet Led (Farklı renklerde olursa güzel olur.)
- Jumper Kablolar
- Direnç (İsteğe bağlı ben şahsen kullanmadım.)
Öncelikle her mikroişlemciye girişte olduğu gibi klasik bir giriş ile yani led flaşör ile giriş yapalım.
Launchpad 10.pinini çıkış olarak aldım ve oraya bir led bağladım. Dileyen ledin önüne direnç de koyabilir.
İsteğimiz şu olacak, led 1 saniye yanacak ve 1 saniye sönecek. Kodlar ve şeması;
void setup() {
// Pinler Çıkış olarak belirleniyor
pinMode(10, OUTPUT); // MAVI LED
}
void loop() {
digitalWrite(10, HIGH); // LED yanik
delay(500); // 500mS bekle
digitalWrite(10, LOW); // LED sonuk
delay(500); // 500ms bekle
}
Biraz daha görsel tabiri caizse cix birşey yapalım :) . 4 adet ledi yanyana sırayla yakalım ve 4'ü aynı anda yanmadan hiçbiri sönmesin. Kodlar ve Şema :
int led1=7;
int led2=8;
int led3=9;
int led4=10;
void setup()
{
pinMode(led1, OUTPUT); //7.pin led1
pinMode(led2,OUTPUT); //8.pin led2
pinMode(led3,OUTPUT); //9.pin led3
pinMode(led4,OUTPUT); //10.pin led4
}
int i;
void loop() {
for(i=0;i<=1;i++)
{
digitalWrite(led1,HIGH); //1.ledi yak
delay(250); // 0.25 saniye bekle
digitalWrite(led2,HIGH); //2.ledi de yak
delay(250); // 0.25 saniye bekle
digitalWrite(led3,HIGH); // 3.ledi de yak
delay(250); // 0.25 saniye bekle
digitalWrite(led4,HIGH); // 4.ledi de yak
}
for(i=0;i<=1;i++)
{
digitalWrite(led1,LOW); //1.ledi söndür
delay(250); //0.25 saniye bekle
digitalWrite(led2,LOW); //2.ledi de söndür
delay(250); //0.25 saniye bekle
digitalWrite(led3,LOW); //3.ledi de söndür
delay(250); //0.25 saniye bekle
digitalWrite(led4,LOW); //4.ledi de söndür
}}
Arduino ile güzel bir giriş yaptığımızı düşünüyorum ve umuyorum ki bu konuda daha hızlı ilerleyeceğiz.
Kaydol:
Kayıtlar (Atom)







