Led Parlaklık değiştirme

Altay06

Üye
Katılım
3 Şub 2021
Mesajlar
54
Puanları
1
Yaş
32
Merhaba arkadaşlar arduino ile pwm çıkış kullanarak bir touch buton ile bir ledin parlaklığını 5 kamede değiştireceğim ve belli bir süre basılı tutunca da kapanacak örnegin butona bastım açıldı her basışımda ledin parlaklıgı artacak 5 kademe sonrası yine en düşüğe dönecek ve belli bir süre basılı tutunca da kapanacak bununla ilgili örnek projesi olan var mı? Yani pwm ile onlarca örnek var biliyorum ben altından kalkarım ama basılı tutunca kapanması olayını yazılım olarak çözemedim. Yazılım kısmında çok eksiğim var? Basit bir şey mi ne düşünüyorsunuz bu konu hakkında Nerelere bakmam gerekli, Hayırlı forumlar, cevaplarınız için şimdiden teşekkürler
 
Kesme kullanmak zorunda değilsin ama böylesi sanki daha iyi


Kod:
const byte ledPin = 4;
const byte buttonPin = 2;
volatile int parlaklik = 0;
const int kapanmaSure = 1000;
volatile int basilanSure = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(buttonPin), led_kesme, FALLING);
}

void loop() {
  analogWrite(ledPin,map(parlaklik%6,0,5,0,255));
}

void led_kesme() {
  parlaklik++;
  while(!digitalRead(buttonPin)){
    basilanSure++;
    delay(1);
    if(basilanSure >= kapanmaSure){
      parlaklik = 0;
      analogWrite(ledPin,0);
     }
  }
  basilanSure = 0;
}
 
Son düzenleme:
çok teşekkur ederim hocam, yarin deneyecegim bunu
 
Moderatör tarafında düzenlendi:
Günaydın hocam programı attiny85'e yüklerken şöyle bir hata alıyorum, ayrıca normal arduinoda denedim butona basınca parlaklık değişmiyor 3. basışımda açılıyor led 5 basışımda kapanıyor, 6 da açılıyor 9 da kapanıyor 11 de açılıyor 13 de kapanıyor.... bu şekilde oldu.
 

Ekli dosyalar

  • hata.jpg
    86.4 KB · Görüntüleme: 9
Son düzenleme:
Arkadaş şu foruma yazdıklarım yüzünden bi kere de yüzüm gülsün.
İlk sorunun cevabı attiny85 kitaplıkları farklı olduğu için o ifade tanımlı olmayabilir. İnternetten arat arduinoyla attiny85 interrupt nasıl verilmiş.
İkinci sorunun cevabı böyle yapması normal led belli bi voltajın altında yanmaz. Yazılım sıfır 5 volt arasını 5 e bölüyor yani üçüncü basışta 3 volta ulaşabiliyor. Yapman gereken tek şey map fonksiyonu içindeki 0,255 ifadesini 150,255 olarak değiştirmek. Böylece sıfır 5 volt arası değil 2.5 5 volt arası çalışır.
Ayrıca arduino üzerindeki led çıkışını kullanma harici bir LED tak
 
 
Pwm ile gerilim mi ayarlanıyor?
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…