Arduino program yazarken zorlanmak

@K.Makise hocam o ne öyle koca sistem kurmuşsunuz

Galiba küçük arduinos etleri ve komponentlerine düz hesap bir 1200TL vermişimdir.

Fakat bir proje yapıp çalışıtığını görünce tatmin oluyorsunuz.

Mesela geçtiğimiz günlerde "Arduino'yu zamanlayıcı olarak kullanmak" isimli konudaki bir üyemize kod konusunda yardımcı oldum sıfırdan kütüphane kullanmadan basit bir saat yazdım ve günün belirli saatleri çalışıp belirli süreleri motoru kapatacak bir kod ile birleştirdim.

Aslında şu an konu sahibi de bunları yapacak bilgiye ve temele sahip sadece IDE'yi açıp yazmalı.
 
Siz gerçekten kendinizi geliştirmişsiniz. Ben de bolca araştırma yapmaya başlayıp kendimi geliştirmeye çalışacağım.
 
Siz gerçekten kendinizi geliştirmişsiniz. Ben de bolca araştırma yapmaya başlayıp kendimi geliştirmeye çalışacağım.

Hocam, kod yazmaktan ya da hata yapmaktan korkmayın. Küçük şeyler ile başlayın mesela butona basınca LED yakın. Sonra butona bir kere basınca yanık kalacak tekrar basınca sönecek şekilde yazın.

Sonra bir buton daha ekleyin ona bir kere basınca 1sny aralıklarla yanıp sönsün, 2 kere daha basınca hızlı hızlı yanıp sönsün, 1 kere daha basınca ışığı azalıp artsın tabii bunun içinde PWM PIN'i kullanmalısınız.

Böyle böyle üstüne koya koya geliştirsiniz.

Mesela ben başta Switch-case neymiş kullanmam if-else varken diyordum ama işler öyle değil iş tek bir yerden gelen verilerle çalışırken Switch-case if-else hız konusunda fark atıyor tabii yerine göre Switch-case yerine göre if-else yerine göre de iksi de kullanılmalı.


Mesela bir butona basma sayısına göre LED'in yanma durumu değişecek değil mi? Bu kodu önce if-else ile sonra Switch-case ile yazın tabii butona basılıp butona basılma sayısını hep if-else ile yapacaksınız ama LED'in basılma sayısına göre değişmesini önce if-else sonra Switch-case ile yazın mesela hemen küçük bir örnek yazabilirim galiba mobilden zorlar ama size örnek olsun.

C++:
#define LED 9 // pwm pini diye hatırlıyorum :D
#define BUT 2
#define BUT_2 3
boolean but_state;
byte but_count;

void setup()
{
pinMode(LED, OUTPUT);
pinMode(BUT, INPUT); // PullDown direncini unutmayın.
pinMode(BUT_2,INPUT); // PullDown direnci!
}
void loop()
{
if(digitalRead(BUT) ==1)
{
but_state = !(but_state);
while(digitalRead(BUT) == 1)
delay(100);
}

while (but_state == 1)
{
if(digitalRead(BUT) ==1)
{
but_state = !(but_state);
while(digitalRead(BUT) == 1)
delay(100);
}
if(digitalRead(BUT_2) == 1)
{
but_count++;
while(digitalRead(BUT_2) == 1)
delay(100);
}
else if(but_count==1)
{
for(byte a=0; a<2;a++)
{
if(digitalRead(BUT_2) == 1)
{
but_count++;
while(digitalRead(BUT_2) == 1)
delay(100);
}
digitalWrite(LED,but_state);
delay(1000);
digitalWrite(LED,!(but_state));
delay(1000);
}
}

else if(but_count==2)
{
for(byte a=0; a<2;a++)
{
if(digitalRead(BUT_2) == 1)
{
but_count++;
while(digitalRead(BUT_2) == 1)
delay(100);
}
digitalWrite(LED,but_state);
delay(250);
digitalWrite(LED,!(but_state));
delay(250);
}
}
}
else if(but_count==3)
but_count=0;
}
}

Hocam şöyle bir kod yazdım hata olduğuna kesin eminim çünkü mobilde yazınca çok karıştı hem ekran küçük hem kodlara düzene sokamıyorum bayağı sıkıntı oldu ama hataları bulup çözebilirsiniz.

IDE'ye yapıştırırsanız bir CTRL+t yapıp biçimlendirin kodu bence.

Bu kodu çalışır hale getirip Switch-case ile tekrar yazmayı da deneyebilirsiniz.
 
Son düzenleme:
Tamam teşekkür ederim yardımınız için.
 

Gayet doğal önce alıştırma ve beceri kazanmanız gerek bu arada kurslara bağlı kalmayın internetten dokümantasyon ve projeleri inceleyin.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…