Arduino ve Butonlar ile Led Kontrolü (3. Örnek) - Robo90 Arduino Dersleri #25

preview_player
Показать описание

🚀 Robo90 Arduino Setleri:

Temel C/C++ eğitiminin sonuna yaklaşırken, şimdiye kaar öğrendiklerimiz ile donanım tabanlı bazı antrenmanlar ile pratik yapmak bizim için çok iyi olacaktır. Bu videodaki gibi basit örnekleri kendi kafanızdan kurgulayıp yazmaya deniyerek antrenman yapmaya devam etmenizi tavsiye ederim.

🔗 Arduino Dersleri Oynatma Listesi (Playlist):

Bu içerikte Robo90 kendi sunduğu ürün ve hizmetlerin #reklam ve #tanıtım faaliyetlerini yapmaktadır.
Рекомендации по теме
Комментарии
Автор

state değerine bool desek de aynı şekilde çalışır mı? veya daha verimli olur mu?

mehmetemingunergok
Автор

while döngüsü ile delay eklediğim an sistem çalışmıyor fakat while ile delay satırını silince düzeliyor, seri port ekranından bakınca while döngüsü yazılıyken butonun değeri 0 ken basınca 1 oluyor ve kalıyor, geri 0 a dönmüyor sebebi nedir?

fatihkorkmaz
Автор

butonlarımı düzgün bağlasam da butona bastığımda 1 değerini almam gerekirken 0 değeri değişmiyor, 2. bir buton bağladığımda ise 2.butonun değeri sabit 1 oluyor bastığımda ise 0 oluyor yardım eder misiniz gerçekten kafayı yiyeceğim

bugraalpaydn
Автор

İkinci soruda basılıp ÇEKİLINCE yansın/sönsün durumu için (yani basılır basılmaz değil de elimizi butondan çekince yansın):

if (digitalRead(BUTTON2) == 1){
if (digitalRead(BUTTON2) == 0){
state = !(state);
digitalWrite(..., state)
...
}
}

HilmiCanat
Автор

hocam butona bastığınızda ledler yandı ve o anda elektrik kesintisi yaşandı, elektrik geldiğinde ledler yanık olacakmı?

halitbuyukaydin
Автор

İkisi de aynı kodda çalışıyor;


int button1 = 8;
int button2 = 9;
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
int state = 0;


void setup() {
pinMode(button1, INPUT);
pinMode(button2, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);


}


void loop() {



if (digitalRead(button1) == 1) {

digitalWrite(led1, 1);
digitalWrite(led2, 1);
digitalWrite(led3, 1);
digitalWrite(led4, 1);
}

else if (digitalRead(button2) == 1) {
delay(150);
state = !(state);

digitalWrite(led1, state);
digitalWrite(led2, state);
digitalWrite(led3, state);
digitalWrite(led4, state);

}
else if (state == 0) {

digitalWrite(led1, 0); /* state 0 iken zaten ledin sönmesi gerektiği için ve if çalışırken alt satırlar umursanmayacağı için bu şekilde gayet sağlıklı olduğunu düşünüyorum*/
digitalWrite(led2, 0);
digitalWrite(led3, 0);
digitalWrite(led4, 0);

}


}

multicontt
Автор

Merak ettiğim şey şu:
1) if(...){ while(...){...}...} LED YAKMA DURUMLARI
2) if(...){while(...){...}LED YAKMA DURUMLARI}
1.durumda butona bastığımız zaman if döngüsünde kaldığımız,
2.durum ise buton bastıktan sonra stat değerinin değişip if döngüsünün dışında işlem gördüğümüz durumdur.

1.DURUM

if (digitalRead(BUTTON) == 1)
{ state = !(state);
while (digitalRead(BUTTON) == 1){delay(100);}
digitalWrite(BLUELED, state);digitalWrite(BROWNLED, state); digitalWrite(YELLOWLED, state);digitalWrite(GREENLED, state);
}

2.DURUM

if (digitalRead(BUTTON) == 1){state = !(state);
while (digitalRead(BUTTON) == 1){delay(100);}
}
digitalWrite(BLUELED, state);digitalWrite(BROWNLED, state);digitalWrite(YELLOWLED, state);digitalWrite(GREENLED, state);

Doğru olan kullanım 2.durum mu yoksa ben yanlış mı düşünüyorum?

umutcangok-
Автор

ben asaıdaki gibi bir kod yazdım ama bread boardda deneme sansım olmadı sizce yazdıgım kod dogrumu
int i = 4;
int y = 3;
#define buton1 8
#define buton2 8
#define lamba1 3
#define lamba2 4
#define lamba3 5
#define lamba4 6
void setup() {
pinMode(buton1, INPUT);
pinMode(buton2, INPUT);
pinMode(lamba1, OUTPUT);
pinMode(lamba2, OUTPUT);
pinMode(lamba3, OUTPUT);
pinMode(lamba4, OUTPUT);
}

void loop() {
if(buton2, HIGH) {
i++;
}
if(i = 5) {
digitalWrite(y, HIGH);
y++;
if ( y = 7 ) {
y == 7;
delay(50);
}
}
if(i = 6) {
i = i - 2;
}
if(i = 4){
digitalWrite(y, LOW);
y--;
if(y = 2) {
y == 2;
delay(50);

}
}
}

nikolatesla
Автор

#define led1 3
#define led2 4
int button1 = 2;
int button2 = 5;
int deger = 0;
int state1;
int state2;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(button1, INPUT);
pinMode(button2, INPUT);
Serial.begin(9600);
}

void loop() {
state1 = digitalRead(button1);
state2 = digitalRead(button2);

if (state1 == 1) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
}
else {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
}

if ( deger >= 3) {
deger = 1;
}
else if ( state2 == 1) {
deger++;
delay(200);
}

else if (deger == 1) {
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
}
else if (deger == 2) {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
}


Serial.println(deger);
}
ben böyle yaptım ve örnekte bizden istenenin aynısı oldu

cinarsaglam
Автор

#define btn1 2

#define btn2 4

#define led1 5
#define led2 6
#define led3 7
#define led4 8

int durum;
void setup() {
pinMode(btn1, INPUT);
pinMode(btn2, INPUT);

pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
}

void loop() {

//BASINCA YANSIN ÇEKİNCE SÖNSÜN
if (digitalRead(btn1) == 1)
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
}
else
{
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
}

//BASIP ÇEKİNCE YANSIN TEKRAR BASIP ÇEKİNCE SÖNSÜN


if (digitalRead(btn2) == 1)
{
delay(1000);
if (digitalRead(btn2) == 0)
{
durum = 1;
while (true)
{
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);

if (digitalRead(btn2) == 1)
{
delay(50);
if (digitalRead(btn2) == 0)
{
delay(100);
break;
}
}
}
}
}
}

KodEvren
Автор

#define buton_1 8
#define buton_2 9
#define led 2
int mantik = 0;
void setup() {
Serial.begin(9600);
pinMode(INPUT, 8);
pinMode(INPUT, 9);
pinMode(OUTPUT, 2);
}

void loop() {
//buton_1
if(digitalRead(buton_1)==1){

if(mantik==1){
digitalWrite(led, LOW);
mantik=0;
delay(250);
}

else{
digitalWrite(led, HIGH);
mantik=1;
delay(250);
}

}
//buton_2
if(digitalRead(buton_2)==1)
{
digitalWrite(led, HIGH);

digitalWrite(led, LOW);
}
}

bahadrsar
Автор

int plaka = 2;
int buton = 3;
int l1 = 4;
int l2 = 5;
int c = 0;
void ac() {
for (int z = 4; z <= 5; z = z + 1) {
digitalWrite(z, HIGH);
}
}

void kapa() {
for (int z = 4; z <= 5; z = z + 1) {
digitalWrite(z, LOW);
}
}

void setup() {
Serial.begin(9600);
pinMode(plaka, INPUT);
pinMode(buton, INPUT);
pinMode(l1, OUTPUT);
pinMode(l2, OUTPUT);
}

void loop() {

int a = digitalRead(plaka);
int b = digitalRead(buton);

if (b == 1 && c == 0) {
ac();
c = 1;
delay(500);
} else if (b == 1 && c == 1) {
kapa();
c = 0;
delay(500);
}

if (c==1){
ac();}
else{
if(a==1){
ac();
}
else{
kapa();
}
}
}

berkman
Автор

int i = 1;
void setup() {
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(8, INPUT);
pinMode(9, INPUT);
}

void loop() {
if (digitalRead(9) == 1) {
while (digitalRead(9) == 1) {
delay(25);
}
i++;
}
if (i % 2 == 0) {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
}
if (i % 2 == 1) {
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);

if (digitalRead(8) == 1) {
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
}
else {
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
}
}