Şartlı İfadeler (if-else if-else) - Robo90 Arduino Dersleri #12
HTML-код
- Опубликовано: 30 сен 2024
- "Eğer bu olursa bu olsun", "eğer şu değeri görürsen bunu yap" gibi temel komutları Arduino'ya vermek istediğinizde kullanmanız gereken yapılara şartlı ifadeler diyoruz. if, else if, else 3 lüsünden oluşan bu konuyu bu videoda inceliyoruz. İyi seyirler.
🚀 Robo90 Arduino Setleri:
👉Robo90 Arduino Uno İleri Başlangıç Seti: www.robo90.com...
👉Robo90 Arduino Uno Başlangıç Seti: www.robo90.com...
🔗 İnternet Mağazamız: www.robo90.com/
🔗 Instagram: / robo90com
🔗 Arduino Dersleri Oynatma Listesi (Playlist):
• Neden Bu Arduino Kursu...
👉Örnek soru:
1'den, 100'e kadar bir değişkenin değerini birer birer arttıran bir kod yazınız. Bu değişkenin değeri artarken, her bir arttırmada değişkenin değerini ekrana yazdırın. 3'e tam bölünen sayılar denk geldiğinde sayının yanına *, 5'e tam bölünen sayılar denk geldiğinde # karakterlerini sayının yanına yazdırın. Hem 5'e, hem 3'e kalansız bölünen sayılar denk geliğinde BOOOM yazdırın. Örnek çıktıdan faydalanabilirsiniz.
👉Örnek Ekran çıktısı:
1
2
3*
4
5#
.
.
.
15 BOOOM
.
.
.
Tüm 3D yazıcı, filament ve yedek parça ihtiyaçlarınız için robo90.com'a göz atabilirsiniz.
Bu içerikte Robo90 kendi sunduğu ürün ve hizmetlerin #reklam ve #tanıtım faaliyetlerini yapmaktadır.
int sure = 100; //isteğe bağlı yazma hızı
int sayi = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
sayi = sayi + 1;
if(sayi%15==0)
{
Serial.println("BOOM");
}
else if (sayi%5==0)
{
Serial.print(sayi); Serial.println("#");
}
else if (sayi%3==0)
{
Serial.print(sayi); Serial.println("*");
}
else
{
Serial.println(sayi);
}
delay(sure);
}
Bu sonsuza kadar gidiyor. 1-100 arası olması lazım.
@@zeynalovomar void loop() kısmının içinin tamamını
if(sayi
Şartlı ifadeleri bu kadar basit ve güzel anlatan bir video serisi izlemedim ellerine sağlık abi…
ELSE IF ve ELSE arasındaki temel fark şöyledir anladığım kadarıyla :ELSE IF bir koşula sahiptir ve IF yanlış olduğunda ELSE IF'e ,ELSE IF de yanlışsa sonraki ELSE IF'e, o da yanlışsa diğer ELSE IF'e geçecek şekilde ilerler ve tüm ELSE IF ler de yanlışsa ELSE'i işleme koyar yani ELSE koşul barındırmayan son çare olarak bir seçenektir.
biran korktum bıraktın diye paylaşımı izleyelim bakalim şimdiden ağzına saglik dostum
int a = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
if (a >= 0 && a
teşekkürler çok işime yaradı
Zaten sınavdan geçmek için bu videoyu izliyorum kalma korkusu var içimde örnek olarak geçti kaldı diye hatırlatıp durmasaydınız keşke 😂
Aynen 😂
int a = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
a++;
if ((a % 3 == 0) && (a % 5 == 0) ) {
Serial.print(a);
Serial.println("BOOOM");
}
else if (a % 3 == 0) {
Serial.print(a);
Serial.println("*");
}
else if (a % 5 == 0) {
Serial.print(a);
Serial.println("#");
}
else {
Serial.println(a);
}
delay(500);
}
int i = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
i = i + 1;
if (i % 5 == 0 && i % 3 == 0) {
Serial.print("i=");
Serial.print(i);
Serial.println("BOOM");
}
else if (i % 3 == 0) {
Serial.print("i=");
Serial.print(i);
Serial.println("*");
} else if (i % 5 == 0) {
Serial.print("i=");
Serial.print(i);
Serial.println("#");
} else {
Serial.print("i=");
Serial.println(i);
}
delay(500);
}
int a = 1;
void setup() {
Serial.begin(9600);
Serial.println("a:");
Serial.println(a);
}
void loop() {
if (a < 100) {
a++;
Serial.print(a);
if (a % 5 == 0 && a % 3 == 0)
Serial.print("BOOOM");
else if (a % 3 == 0)
Serial.print("*");
else if (a % 5 == 0)
Serial.print("#");
Serial.println("");
}
}
pekala istenileni nasıl yapıcağımı buldum ancak tam olarak anlayamadım örneğin kullandığım ifadelerden biri:
if(a%3 == 0 ) bir şekilde sayının 3 e bölünüp bölünmediğini tespit ediyor ancak ben " % " ve tek bir tane " & " ne işe yarıyor bilmiyorum
yine de çalışan kod şöyle:
int a = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
a= a + 1;
if ((a%3 ==0 ) && (a%5 == 0))
{
Serial.print("a=");
Serial.println("boom");
}
else if (a%3 == 0)
{
Serial.print("a=");
Serial.print(a);
Serial.println("*");
}
else if (a%5 == 0)
{
Serial.print("a=");
Serial.print(a);
Serial.println("#");
}
else
{
Serial.print("a=");
Serial.println(a);
}
}
Denetleyici if şartı doğru olursa sonraki else if'i veya else'i umursamaz
👏👏👏
Nasılda büyük gurur benim için😌
selamlar yarım çalışan bir kod buldum ama tam olarak düzeltemedim
int a = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
a = a + 1;
Serial.println(a);
if (a % 15 == 0) {
Serial.print("BOOOM");
}
else if(a%3==0){
Serial.print("*");
}
else if(a%5==0){
Serial.print("#");
}
delay(1000);
}
ama böyle yapınca sonuç aşağıdaki gibi çıkıyor
1
2
3
*4
5
#6
*7
8
9
*10
#11
12
*13
14
15
BOOOM16
şeklinde sonuç veriyor acaba nasıl düzeltebilirim
Nerde hata olduğunu anladım gibi
Println yerine print yaz print yerine de println yaz
int a = 0;
void setup() {
Serial.begin(9600);
while (a < 100)
{
a++;
if (a % 15 == 0) {
Serial.println ("BOOOM");
}
else if (a % 3 == 0 ) {
Serial.print (a);
Serial.println ("*");
}
else if (a % 5 == 0) {
Serial.print (a);
Serial.println ("#");
}
else Serial.println(a);
delay(500);
}
}
void loop() {
}
int x;
void setup() {
Serial.begin(9600);
x = 1;
}
void loop() {
x = x + 1;
if (x
Kodu yazdım ama bunun uzun yol olduğunu düşünüyorum, bundan daha kısa yolunu bulan varsa bana anlatabilir mi? kodu yanıta ekleyeceğim isteyen bakabilir.
int n = 0;
int b;
int c;
void setup() {
Serial.begin(9600);
}
void loop() {
n = n + 1;
Serial.println(n);
delay(400);
n = n + 1;
Serial.println(n);
delay(400);
n = n + 1;
Serial.print(n);
c = c + 3;
if ( n = c)
Serial.println("#");
delay(400);
n = n + 1;
Serial.println(n);
delay(400);
n = n + 1;
Serial.print(n);
b = b + 5;
if ( n = b)
Serial.println("*");
delay(400);
n = n + 1;
Serial.print(n);
c = c + 3;
if ( n = c)
Serial.println("#");
delay(400);
n = n + 1;
Serial.println(n);
delay(400);
n = n + 1;
Serial.println(n);
delay(400);
n = n + 1;
Serial.print(n);
c = c + 3;
if ( n = c)
Serial.println("#");
delay(400);
n = n + 1;
Serial.print(n);
b = b + 5;
if ( n = b)
Serial.println("*");
delay(400);
n = n + 1;
Serial.println(n);
delay(400);
n = n + 1;
Serial.print(n);
c = c + 3;
if ( n = c)
Serial.println("#");
delay(400);
n = n + 1;
Serial.println(n);
delay(400);
n = n + 1;
Serial.println(n);
delay(400);
n = n + 1;
Serial.print(n);
c = c + 3;
b = b + 5;
if ( n = b = c)
Serial.println(" BOOOM!!!");
delay(400);
}
Komutu yazmakta zorlandım. cevabı paylaşır mısınız?
Bu konular çok önemli arkadaşlar. Ömer abi çok iyi anlatıyor ama yinede anlamadığınız yer olursa anlayana kadar buradan sorun veya Google'a aratın. Kolay gelsin. :)
sayıyı 100'e nasıl sınırlayacağımı anlayamadımda yardımcı olur musunuz?
Bu soruyu çözmek için bir loop döngüsü gerekiyor. Başlatmayı biliyoruz ama durdurmayı bilmiyoruz. 100 döngü tamamlanıp her sayı için mantıksal değerlendirme yapıldıktan ve sonuç ekrana yazdırıldıktan sonra döngü nasıl sonlandırılacak?
void loop içerisinin tamamını kapsayacak şekilde if (sayı
öncelikle çok güzel anlatıyorsunuz emeğiniz için sağolun
derslere başlayalı 3 hafta oldu ilerledikçe kafam daha çok karışıyor bu normal mi? seyrederken çok basit geliyor haa yaparım ben bunu hatta daha karmaşık şeylerde yaparım diyorum ama verdiğiniz örneği bile yapamadım çok sinirledim merak ettim yapay zekaya sordum kodu o yazdı :)
void setup() {
Serial.begin(9600); // Seri iletişimi başlat
}
void loop() {
for (int i = 1; i
merhaba, motivasyonunuzu kaybetmeyin. Böyle olması çok normal. ilerledikçe ve zaman geçipde başka insanların kodlarını gördükçe sağlam bir şekilde oturacak mantık. kursu tamamlayın aşinalığı yakalayıp başka projelere bakmaya başlayın.
@@Robo90com inşallah bitireceğim. okyanusa düştük bir kere yüzmeyi öğrenmekten başkan çaremiz yok. Size de çalışmalarınız da başarılar.
ya bende sorun var yada ardunioda yav kod herşey doğru ama not yüksek olduğu zamanda geçtiniz kaldınız diyor düşük olduğu zamanda nolur birisi yardım etsin
int Not = 70;
void setup() {
Serial.begin(9600);
if (Not >= 75);
Serial.println("Geçtiniz");
if (Not
Hocam mrb
Akvaryum yemleme için kodum hazır 12 saatte bı çalışıyor.
Ben istiyorum ki
bitanede buton olsun
1 kere Bastığım zaman bı kere yemlesin
12 saatte bı yemlemeye devam etsin
Butonla reset atmak gibi yani
Yardımcı olursanız sevinirim
Öncelikle merhaba ömer bey seriyi heyecanla takip ediyoruz ilk videonuzda bu serinin bütün videolarının önceden çekili olduğunu söylemiştiniz bu seri toplam kaç video olacak acaba
Merhaba, ilginiz için teşekkürler. Aslında seri 30 küsür videoda bitiyor. Bu bölümlerin çekimi yapıldı. Fakat devamında biraz daha teknik konulara girip( kütüphane yazmak vb.), çeşitli modül ve sensörler hakkında bilgi veren ek videolarda olacak onlarla beraber 60'ı aşar zamanla gelecek o videolarda.
int a = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
a++;
if ((a % 3 == 0) && (a % 5 == 0)) {
Serial.print(a);
Serial.println("boom");
}
else
Serial.println(a);
else if (a % 3 == 0) {
Serial.print(a);
Serial.println("*");
}
else if (a % 5 == 0) {
Serial.print(a);
Serial.println("#");
}
}
yazdığım kod sonsuza kadar gidiyor yüze geldiğinde nasıl durduracağım
İf(i
baya bir uğraştım ama sonunda yapabildim.
int i = 1;
void setup() {
Serial.begin(9600);
i = i++;
}
void loop() {
if((i
3'e ve 5'e , hem 3'e hem de 5'e bölünebilme kuralını karşılayan sayıların birden fazla kez yazılması dışında kod gayet iyi çalışıyor.
int sayi = 1;
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
}
void loop() {
if (sayi < 100) {
Serial.println(sayi++);
delay(1000);
}
if (sayi % 3 == 0) {
Serial.print(sayi), Serial.println("*");
}
if (sayi % 5 == 0) {
Serial.print(sayi), Serial.println("#");
}
if ((sayi % 3 == 0) && (sayi % 5 == 0)) {
Serial.print(sayi), Serial.println(" BOOOM");
}
while (sayi == 100) {
digitalWrite(13, 1);
delay(1000);
digitalWrite(13, 0);
delay(1000);
}
}
Merhaba arduino kartını pcye bağlamadan seri monitörü çalıştırmak mümkün mü
Ben değişkeni sayı yaptım çalışmadı Türkçe karakterleri kullanınca hata veriyor (bu sorunu yaşayanlara)
Teşekkürler hocam.
Merhaba, Epson printerden söktüğüm bir renkli ekran var ,Bu ekranı Arduino ile nasıl kullanabilirim ? çünkü kütüphanesi yok
Abi konuyla ilgili değil ama canbus2515 ile alakalı hiç videon ya da yazın varmı? Ya da bildiğin bir yer varmı düzgün kayna bulamadımda.
: )
#12 tamamlandı
Burada kaldım, yarın devam inşallah 🌹 emeklerinize sağlık...
Çok iyi bi anlatım bundan sonra sende ders alacam.
Muhteşem bir video şartlı ifadelerin sırasının değişmesiyle oluşabilecek hataları başka bir kanalda dinleyebileceğimi sanmıyorum bu konuya yer verilse bile bu kadar açık olamaz kesinlikle
int number = 1;
int a; // a 15 e bölünüp bölünmediğine bakmak için
int b; // b 3 e bölünüp bölünmediğine bakmak için
int c; // c 5 e bölünüp bölünmediğine bakmak için
void setup() {
Serial.begin(9600);
}
void loop() {
if (number
bir sayının 3e bölümünün sonucunun tam sayıya eşit olup olmadığını arduinoya nasıl kontrol ettirebilirim?
benim aklıma int belirli tam sayılarda tanımlı olduğu için şunu yazmak geldi ama olmadı
if (a/3 == int );
mod alarak kontor etmen lazım yani
if( a % 3 == 0);
bu komutla beraber a sayısının 3 e tam bölünüp bölnünmediğini kontrol etmiş olursun.
Bir önceki videolarda bahsedildi bu konu
#12 tamamlandı
Örnek kodu da yazdınız mı ? Sizin cevapları bekliyorum :)
@@Robo90com valla şöyle bişey yazdım ama pc de denemedim
int oda_sıcaklık=21; //x'e 21 değerini atadım
void loop() {
if (sıcaklık >= 24) {
Serial.println("Sıcaklık 21in üzerinde");
}
else if (sıcaklık >= 20) { // 20
müthiş...
Süperrrrr yeni videoooo
teşekkürler.
Ben şu şekilde yaptırabildim. Ama doğrusu bu değil gibi. else kullanmadım. Biraz uzun gibi oldu. Yoruma kodu ekliyorum.
int deger = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
deger++;
Serial.print(deger);
if (deger == 100) {
deger = 0;
}
if (deger % 3 == 0) {
Serial.print("*");
}
if (deger % 5 == 0) {
Serial.print("#");
}
Serial.println();
}
Bugün yeni ders (13) yayınlanınca bu örneği while döngüsü ile daha düzgün yapabileceğimi fark ettim. Ayrıca önceki örneğimde BOOM ekleymeyi atlamışım. Bu sefer yoruma yeni kodu ekliyorum. İstenilen doğru kod bu mu bilmiyorum ama yine de eklemek istedim.
int deger = 0;
void setup() {
Serial.begin(9600);
while (deger < 100) {
deger++;
Serial.print(deger);
if ((deger % 3 == 0) && !(deger % 5 == 0)) {
Serial.print("*");
}
if ((deger % 5 == 0) && !(deger % 3 == 0)) {
Serial.print("#");
}
if ( (deger % 3 == 0) && (deger % 5 == 0) ) {
Serial.print(" BOOOM");
}
Serial.println();
}
}
void loop() {
}
merhaba, aşağıdaki yazmış olduğum if kodlarda belirtilen süreler ilk komutta düzgün çalışıyor ama sonda süreler arasında her defasında farklar artmaktadır. Yardımcı olabilirseniz sevirim.
if(simdikizaman - oncekizaman4 == 20)
{
for (pos = 18; pos >= 0; pos-=1){sg904.write(pos); delay(10);}
for (pos = 0; pos = 0; pos-=1){sg906.write(pos); delay(5);}
for (pos = 0; pos = 0; pos-=1){sg902.write(pos); delay(5);}
for (pos = 0; pos = 0; pos-=1){sg903.write(pos); delay(5);}
for (pos = 0; pos