Arduino Tarifleri #24 - Tek Boyutlu Diziler (Array) / LRT (1080p)

preview_player
Показать описание
🚀 Robo90 Arduino Setleri:

Videoda kullanılan kod, devre şeması ve sorularınız için aşağıdaki linki kullanabilirsiniz.

Arkadaşlar merhaba, serimizin 24. bölümüne hoş geldiniz 🙂

Bu video ile beraber diziler konusuna giriş yaparak, tek boyutlu dizileri Arduino ile nasıl kullanabiliriz onu öğreniyoruz.

Çoğunlukta düzenli veri saklamak ve haberleşme protokollerinde veri alış verişi esnasında kullanılan diziler pek çok çevre bileşenin kullanılabilmesini de sağlar. Mesela bir keypad kullanmak için 2 boyutlu bir dizi ile keypadi Arduino’ya tanıtmanız gerekir. Hatta bunun videosu şuan kanalımızda var, bir sonraki videoda çift boyutlu dizileri tanıdıktan sonra sizde Ardunio kartınıza bir keypad bağlayabilirsiniz. Onun dışında pekçok endüstriyel uygulamada da kodlama esnasında diziler kullanılır. Mesela şöyle ufak bir örnek vereyim, stajyer otomasyon mühendisi olarak çalıştığım kurumda, müşterilerin çeşitli sıkıntıları için robotlu çözümler sunuyoruz. Bir projede müşterimiz, fabrikalarındaki makinanın 6 saniye bir karo taşı ürettiğini ve bu karo taşlarının tahta paletler
üzerine dizilmesini istediğini söylemişti. Tasarım, üretim, otomasyon ve robotik alanlarının beraber çalışması sonucu bu proje gerçekleştirildi. Maalesef Ar-Ge şirketi olmanın gerekliliklerinden dolayı fazla ayrıntı veremesemde şunu söyleyebilirim ki, yaptığımız sistemde robot kol, karo taşlarını tahta palet üzerine basit bir 3 boyutlu dizi kullanarak diziyordu.

Neyse çok da fazla bilgi verip basit konumuzu ve videomuzu karmaşıklaştırmayalım. Nasıl olsa ileride proje ve malzeme videoları ile beraber bu konuları bol bol pekiştireceğiz. O zaman hadi videoya geçelim. Herkese iyi çalışmalar, iyi seyirler, hoşça kalın 🙂

Düzetlme 12:58 *********************
Burada 0'a değer vermekten bahsediyor gibi görünsede aslında 8 den yani dizinin sekizinci elemanından bahsediyoruz arkadaşlar. Videoda dalgınlık olmuş :)

Uyarı için Ahmet Okan Yılmaz'a teşekkürler :)
*******************************************

Рекомендации по теме
Комментарии
Автор

Emeginize saglik ustad.Devamini cekerseniz (vaktiniz var ise) veya Udemy de paylasirsaniz seviniriz.

Astanaveziri
Автор

abi valla canım sıkılınca arduino tariflerini izliyorum başarılı video

davudeminkarauzum
Автор

Usta eline ağzına sağlık sayende baya iş becerdik.
Fakat Uygulamalarda eksiklerimiz oluyor.
C# uygulamalarıyla ilerleme durumumuz varmıdır?
Son olarak Arduino' ya SeriPort dan dizi gönderme alma ve gelen verilere göre sıralı ve Eş samanlı yani aynı anda birden fazla işlem nasıl yaptırırız. Bu konu ve SPI haberleşme ile ilgili Master Slave işlemleri ile ilgili video hazırlar'mısın? Zira konular uzun ve meşakkatli. Arduino konusunda markalaştığınız için sizden bu çalışmaları istedim mazur görün hedeflerimiz büyük. SPI haberleşme zor ise I2C daha mantıklı' mıdır? Bir umut sizden yardım bekliyoruz.

sedataktas
Автор

Selam aleykum.abi butonu basili tutsak bile ledin 1 kez yanip sonmesini ve butonu birakip tekrar bastigimizda ayni seyin tekrar olmasini nasil saglar yardim edersen sevinirim

kazimmustafayev
Автор

Selamun Aleykum kardeşim 20:24 te 3 yazıyosun fakat o 3(0, 1, 2, 3) yani 30 değilde 5 in yanına 3 koymuş olacak sanırım öyle değilmi ?

gaaragaara
Автор

Emeğinize sağlık. Sevinçten maviye dönüyor iyiydi :)

batuhanserdaroglu
Автор

Hocam ağzınıza sağlık. Ben bir proje için dizi içindeki değerin kaçıncı indiste olduğunu öğrenmem gerek. c# daki gibi bir dizi içinde indexOf gibi bir komut ile aradığımız değerin index değerini nasıl öğrenebiliriz. Örneğin sizin örnekte klavye dizisinde harfler yazdınız, bu harflerden diyelim 'd' harfinin dizide 3. sırada olduğunu nasıl öğreniriz?

uguraydemir
Автор

ben serial ekrana 'aç ' yazıp led yakmak istiyorum sayılarla rahatlıkla yapılıyor ama dizilerle bir türlü yapamadım yardımcı olabilecek varmı

alparslanhisar
Автор

Malzeme alımı konusunda yardımcı olacak bir video çekebilirmisin, uygun fiyatlı iş görecek malzemeleri bir araya getirip fiyat toplamı çıkarabilirsin mesela, bu gerçekten yararlı bir video olacaktır... saygılarımla

canberktimurlenk
Автор

dizilerde 10 ögrenci notu dizinini tanımlarken ilk başa 0 yazsak ve sonraki notları 1. 2. öğrenci öğreci olarak girmiş olsak, aşagıdan 1. öğrenciyi çağırdiğimizda gerçekte 1. öğrenciyi çağırmış olabiliriz sanırım, anladığım kadarıyla...

futuramekanik
Автор

Guzel kardesim videolarin cok hos fakat arkadaki muzik sesini biraz kisarsan cok hos olucak bazen 2 3 video yu arka arkaya izleyince cok rahatsiz olunabilir iyi calismalar.

furkanonatonatca
Автор

şu kodu anladım ama bazı takıldığım noktalar var;
1.Case yapısına girmeden önce button1Presses++;
ifade ne anlama geliyor ve birde buttona basıldığında ardunio bunu çoklu basışlar olarak algılamaz mı sen bize öyle öğretttin! :)
2. button 2 yi neden boolean veri tipinde kullanmış?
Öğrencilerle yaptığımız tübitak projelerinden biri ( hafızalı robot kol) tüm sistemi kurdum yalnızca kodu tam olarak anlamak istiyorum. yardımcı olursan sevinirim.

#include <Servo.h>

Servo servo1; //Servos
Servo servo2;
Servo servo3;
Servo servo4;

const int LED1 = 2; //LEDs
const int LED2 = 3;
const int LED3 = 4;
const int LED4 = 7;
const int LED5 = 8;

const int button1 = 12; //Buttons
const int button2 = 13;

int button1Presses = 0; //Button values
boolean button2Pressed = false;

const int pot1 = A0; //Potentimeters
const int pot2 = A1;
const int pot3 = A2;
const int pot4 = A3;

int pot1Val; //Potentimeter values
int pot2Val;
int pot3Val;
int pot4Val;
int pot1Angle;
int pot2Angle;
int pot3Angle;
int pot4Angle;

int servo1PosSaves[] = {1, 1, 1, 1, 1}; //position saves
int servo2PosSaves[] = {1, 1, 1, 1, 1};
int servo3PosSaves[] = {1, 1, 1, 1, 1};
int servo4PosSaves[] = {1, 1, 1, 1, 1};

void setup() {
servo1.attach(5); // Set up everything and will run once; attach servos and define the pin modes
servo2.attach(6);
servo3.attach(9);
servo4.attach(10);

pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(button1, INPUT);
pinMode(button2, INPUT);

Serial.begin(9600);
}

void loop() {
// put your main code here, to run repeatedly:
pot1Val = analogRead(pot1); // This will read the values from the potentimeters and store it...
pot1Angle = map(pot1Val, 0, 1023, 0, 179); // ... and this will map the values from the potentiometers to values the servos can use and store it for later use
pot2Val = analogRead(pot2);
pot2Angle = map(pot2Val, 0, 1023, 0, 179);
pot3Val = analogRead(pot3);
pot3Angle = map(pot3Val, 0, 1023, 0, 179);
pot4Val = analogRead(pot4);
pot4Angle = map(pot3Val, 0, 1023, 0, 179);

servo1.write(pot1Angle); // These will make the servos move to the mapped angles
servo2.write(pot2Angle);
servo3.write(pot3Angle);
servo4.write(pot4Angle);

if(digitalRead(button1) == HIGH){ // This will check how many times button1 is pressed and save the positions to an array depending on how many times it is pressed; switch/case works like a if statement
button1Presses++;
switch(button1Presses){
case 1:
servo1PosSaves[0] = pot1Angle;
servo2PosSaves[0] = pot2Angle;
servo3PosSaves[0] = pot3Angle;
servo4PosSaves[0] = pot4Angle;
digitalWrite(LED1, HIGH);
Serial.println("Pos 1 Saved");
break;
case 2:
servo1PosSaves[1] = pot1Angle;
servo2PosSaves[1] = pot2Angle;
servo3PosSaves[1] = pot3Angle;
servo4PosSaves[1] = pot4Angle;
digitalWrite(LED2, HIGH);
Serial.println("Pos 2 Saved");
break;
case 3:
servo1PosSaves[2] = pot1Angle;
servo2PosSaves[2] = pot2Angle;
servo3PosSaves[2] = pot3Angle;
servo4PosSaves[2] = pot4Angle;
digitalWrite(LED3, HIGH);
Serial.println("Pos 3 Saved");
break;
case 4:
servo1PosSaves[3] = pot1Angle;
servo2PosSaves[3] = pot2Angle;
servo3PosSaves[3] = pot3Angle;
servo4PosSaves[3] = pot4Angle;
digitalWrite(LED4, HIGH);
Serial.println("Pos 4 Saved");
break;
case 5:
servo1PosSaves[4] = pot1Angle;
servo2PosSaves[4] = pot2Angle;
servo3PosSaves[4] = pot3Angle;
servo4PosSaves[4] = pot4Angle;
digitalWrite(LED5, HIGH);
Serial.println("Pos 5 Saved");
break;
}
}

if(digitalRead(button2) == HIGH){ // Pretty self-explnatory here
button2Pressed = true;
}

if(button2Pressed){ // if the boolean button2Press is true, then the servos will run though all their saved positions
for(int i = 0; i < 5; i++){




Serial.println(" potentimeter Angles: ");




delay(1050);
}
}
delay(300);
}

aliustaibrahimoglu
Автор

Örneğin a ve b ye değer veren 10x10 satır ve sütunlu tablodan nasıl veri seçtirebiliriz?

ramazans
Автор

Hocam merhabalar çalışmalarınız çok başarılı; Ben bir projede bir potansiyometrede ayarlamış değeri bir tuşa basarak bir servo motorun pozisyon değerine aktarmak istiyorum böyle birşey mümkün müdür ?

ozkantekin
Автор

hocam çok güzel olmuş elinize saglık ama dizini boyunu şöyle de oluştura bilirliz
dizi[true];
ile bir donguye koyub breakle çıkabilirizi
veya ' /0' ile de yapabılırız önemlikle karekter dizilerde çok işe yarıyor belki bazı arkadaşların işine yarar
hayırlı çalişmalar

tymrmhe
Автор

merhaba ömer bey interrupt ile ilgi video cekermısınız?

sametkaracam
Автор

Bluetooth kontrollü rfid araba yapabilirmisiniz?

ulasgurel
Автор

Hocam 12:58 de "sıfıra değer vermedik" demişsiniz. Sekize değer vermedik.

AhmetOkanYILMAZ
Автор

şimdi benim elimde 5 tane potansiyometre var bunları ben numaralandırmak için kullanıcam her sayı girildiğinde o sayıya göre işlem yaptıracam
bu değişkenin içerisine gelen değerleri ataya bilirmiyim
char pot[] ={'birincideğer', 'ikincideğer'};
sonra bu değere diyicemki
birincideğer diyelimki 5 aldım bunu 60 bölüp kalanı 60 / 5 = 15 burdada 15 snye bekle ve ledi yak ama bu değer değişken 10 da olabilir ozamanda 60 /10 = 6 6 sn bekle ledi yak gibi

fatihakbal
Автор

Aga yararlandığın kaynak ve kitapları açıklayan bir video yaparmısın

kadiratala