Arduino öğrenmeye çalışıyorum. Klasik buton ile LED yakma projesini yapıyorum ancak kafama programlama konusunda bir şey takıldı. Aşağıya tüm kodları yazacağım ancak aklıma takılan şey "int buton_durum = 0" burada buton_durum adlı int değişkenimiz var ama neden eşit sıfır diyoruz? Yazılım konusunda çok kısıtlı bilgim var, mantıksız bir şey ise kusura bakmayın.
Bende butona basmadığımızda acaba değerini 0 a eşitlemek için mi yazdık diye diye düşünerek int buton_durum = 1 sonra 2 yaptım ve sistem yine hatasız çalıştı.
Bende butona basmadığımızda acaba değerini 0 a eşitlemek için mi yazdık diye diye düşünerek int buton_durum = 1 sonra 2 yaptım ve sistem yine hatasız çalıştı.
Arduino öğrenmeye çalışıyorum. Klasik buton ile LED yakma projesini yapıyorum ancak kafama programlama konusunda bir şey takıldı. Aşağıya tüm kodları yazacağım ancak aklıma takılan şey "int buton_durum = 0" burada buton_durum adlı int değişkenimiz var ama neden eşit sıfır diyoruz? Yazılım konusunda çok kısıtlı bilgim var, mantıksız bir şey ise kusura bakmayın.
buradaki 0 ve 1 ler aslında ilgili girişe veya çıkışa elektrik akımının gelmesi veya verilmesi ile alakalı. Başlangıçta butondan elektrik sinyali gelmeyeceği için değişken direkt sıfıra eşitlenmiş, eşitlenmese ne olur diye sorarsanız hiçbirşey olmaz devre düzgün çalışır. "Butona basmadığımızda 0 olsun" gibi bir anlamı yok yani zaten aksini belirtmediğiniz sürece butona basmadığınızda 0 olur değeri. 2 yapmanız da birşeyi değiştirmez 2 de yazsanız 3 de yazsanız 10 da yazsanız oraya 1 yazmıssınız gibi çalışır.
buradaki 0 ve 1 ler aslında ilgili girişe veya çıkışa elektrik akımının gelmesi veya verilmesi ile alakalı. Başlangıçta butondan elektrik sinyali gelmeyeceği için değişken direkt sıfıra eşitlenmiş, eşitlenmese ne olur diye sorarsanız hiçbirşey olmaz devre düzgün çalışır. "Butona basmadığımızda 0 olsun" gibi bir anlamı yok yani zaten aksini belirtmediğiniz sürece butona basmadığınızda 0 olur değeri. 2 yapmanız da birşeyi değiştirmez 2 de yazsanız 3 de yazsanız 10 da yazsanız oraya 1 yazmıssınız gibi çalışır.
bunların herbirinin sebebini açıklayabilirim isterseniz ama kafanız karışabilir.
Ek olarak " https://www.tinkercad.com/ " bu siteyi şiddetle öneriyorum size. arduino ile kurabileceğiniz devreleri burada sanal olarak çok basit bir şekilde kurabilirsiniz.
Arduino öğrenmeye çalışıyorum. Klasik buton ile LED yakma projesini yapıyorum ancak kafama programlama konusunda bir şey takıldı. Aşağıya tüm kodları yazacağım ancak aklıma takılan şey "int buton_durum = 0" burada buton_durum adlı int değişkenimiz var ama neden eşit sıfır diyoruz? Yazılım konusunda çok kısıtlı bilgim var, mantıksız bir şey ise kusura bakmayın.
int digitalRead(uint8_t pin)
{
uint8_t timer = digitalPinToTimer(pin);
uint8_t bit = digitalPinToBitMask(pin);
uint8_t port = digitalPinToPort(pin);
if (port == NOT_A_PIN) return LOW;
// If the pin that support PWM output, we need to turn it off
// before getting a digital reading.
if (timer != NOT_ON_TIMER) turnOffPWM(timer);
if (*portInputRegister(port) & bit) return HIGH;
return LOW;
}
Biraz detaya iniyoruz ama daha iyi böyle. Bu Arduino'nun işlemcisi olan Atmega 328P'deki pinler aslında portlara ayrılıyor, her porta da 8 pin düşüyor. Her portun bir register'ı var. Oraya 8 bitlik bir sayı giriyorsun, mesela A portuna 00000001 girdiğinde A portundaki 1 pininin lojik 0 mı 1 mi olduğunu görüyorsun. (A portunu analog pinlerle karıştırma.) Bu fonksiyon da ona göre HIGH veya LOW döndürüyor. Bu değerler de 1 ve 0'a eşit.
int digitalRead(uint8_t pin)
{
uint8_t timer = digitalPinToTimer(pin);
uint8_t bit = digitalPinToBitMask(pin);
uint8_t port = digitalPinToPort(pin);
if (port == NOT_A_PIN) return LOW;
// If the pin that support PWM output, we need to turn it off
// before getting a digital reading.
if (timer != NOT_ON_TIMER) turnOffPWM(timer);
if (*portInputRegister(port) & bit) return HIGH;
return LOW;
}
Biraz detaya iniyoruz ama daha iyi böyle. Bu Arduino'nun işlemcisi olan Atmega 328P'deki pinler aslında portlara ayrılıyor, her porta da 8 pin düşüyor. Her portun bir register'ı var. Oraya 8 bitlik bir sayı giriyorsun, mesela A portuna 00000001 girdiğinde A portundaki 1 pininin lojik 0 mı 1 mi olduğunu görüyorsun. (A portunu analog pinlerle karıştırma.) Bu fonksiyon da ona göre HIGH veya LOW döndürüyor. Bu değerler de 1 ve 0'a eşit.
Yanıtınız için teşekkürler son bi özetleme yapabilir misiniz yani ben int buton_durum = 0,1 veya 2 yaptığımda tam olarak neyi değiştirmiş oluyorum.Belirttiğim gibi yazılım konusunda bilgim yetersiz kusura bakmayın.
Yanıtınız için teşekkürler son bi özetleme yapabilir misiniz yani ben int buton_durum = 0,1 veya 2 yaptığımda tam olarak neyi değiştirmiş oluyorum.Belirttiğim gibi yazılım konusunda bilgim yetersiz kusura bakmayın.