const uint8_t sensor_pin = PB0, //Arduino 8
led1 = PD2, //Arduino 2
led2 = PD3, //Arduino 3
led3 = PD4, //Arduino 4
led_sayisi = 3;
int sira = -1;
uint8_t ledler[led_sayisi] = {led1,led2,led3};
void setup() {
DDRB &= ~(1<<sensor_pin);
PORTB |= (1<<sensor_pin); //dahili pull-up kullanmayacaksan burayı sil
DDRD |= (1 << led1) | (1 << led2) | (1 << led3);
}
void loop() {
if(!(PINB & (1<<sensor_pin))){ //Sensör pozitif çıkış veriyorsa baştaki ! işaretini kaldır
do{
delay(250);
}
while(!(PINB & (1<<sensor_pin))); //Sensör pozitif çıkış veriyorsa baştaki ! işaretini kaldır
PORTD = ~(1 << ledler[sira%led_sayisi]) & PORTD;
PORTD |= (1 << ledler[++sira%led_sayisi]);
}
}
Peki 2. Led yanarken 1. Yi kapatmamasını sağlayabilir miyiz? Sıra sıra yanıyor evet amaC++:const uint8_t sensor_pin = PB0, //Arduino 8 led1 = PD2, //Arduino 2 led2 = PD3, //Arduino 3 led3 = PD4, //Arduino 4 led_sayisi = 3; int sira = -1; uint8_t ledler[led_sayisi] = {led1,led2,led3}; void setup() { DDRB &= ~(1<<sensor_pin); PORTB |= (1<<sensor_pin); //dahili pull-up kullanmayacaksan burayı sil DDRD |= (1 << led1) | (1 << led2) | (1 << led3); } void loop() { if(!(PINB & (1<<sensor_pin))){ //Sensör pozitif çıkış veriyorsa baştaki ! işaretini kaldır do{ delay(250); } while(!(PINB & (1<<sensor_pin))); //Sensör pozitif çıkış veriyorsa baştaki ! işaretini kaldır PORTD = ~(1 << ledler[sira%led_sayisi]) & PORTD; PORTD |= (1 << ledler[++sira%led_sayisi]); } }
Yeminle sıtkım sıyrıldı ya böyle sorulardan. Ne bi teşekkür ne bi nezaket var. Yazdıklarımı zerre kadar anlamaya çalşmak yok tamamen işini halletmeye yönelik sorular. Ödev felandır Allah bilir.Peki 2. Led yanarken 1. Yi kapatmamasını sağlayabilir miyiz? Sıra sıra yanıyor evet ama
Örnek olarak: 1. Led yandı 2. Led yanarken 1. Led sönüyor ya da 3. Led yandı ama 1 ve 2. Ledler sönüyor.Ben yandıktan sonra sönmemesini istiyorum.
PORTD = ~(1 << ledler[sira%led_sayisi]) & PORTD;
Kötü bir şekilde yazdığımı düşünmüyorum.Sağlayabilir miyiz? diye sormuşum evet ya da hayır deseydin zaten cevabını alırdın.Yine de teşekkür ederim.Yeminle sıtkım sıyrıldı ya böyle sorulardan. Ne bi teşekkür ne bi nezaket var. Yazdıklarımı zerre kadar anlamaya çalşmak yok tamamen işini halletmeye yönelik sorular. Ödev felandır Allah bilir.
C++:PORTD = ~(1 << ledler[sira%led_sayisi]) & PORTD;
sil bu satırı ve Allah rızası için başka soru sorma!