Arduino Ders 10.1: Çok Boyutlu Diziler || Matris Diziler
1. Giriş
Çok boyutlu diziler, birden fazla sıra ve sütundan oluşan veri yapılarıdır. Arduino'da çok boyutlu diziler, genellikle matris (2D dizi) olarak kullanılır ve verileri düzenli bir şekilde depolamak için idealdir.
2. Çok Boyutlu Dizilerin Tanımı
Çok boyutlu diziler, aşağıdaki gibi tanımlanır:
veri_tipi dizi_adi[satir][sutun];
- veri_tipi: Dizinin tutacağı veri türü (örneğin,
int
,float
,char
). - dizi_adi: Dizinin adı.
- satir: Dizinin satır sayısı.
- sutun: Dizinin sütun sayısı.
3. Örnek: 2x3 Bir Matris Tanımlama
Aşağıda, 2 satır ve 3 sütundan oluşan bir matrisin tanımlanması ve kullanımı gösterilmiştir:
Kod Örneği
// 2x3 bir matris tanımlama
int matris[2][3] = {
{1, 2, 3},
{4, 5, 6}
};
void setup() {
Serial.begin(9600); // Seri haberleşmeyi başlat
// Matris elemanlarını yazdır
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
Serial.print(matris[i][j]);
Serial.print(" ");
}
Serial.println(); // Satır sonu
}
}
void loop() {
// Döngü içinde bir işlem yapılmıyor
}
Kod Açıklaması
- matris[2][3]: 2 satır ve 3 sütundan oluşan bir tam sayı matrisi.
- for Döngüsü: Matrisin tüm elemanlarını seri monitöre yazdırır.
4. Örnek: Matris Toplama
İki 2x2 matrisin elemanlarını toplamak ve sonucu bir başka matrise kaydetmek için aşağıdaki kodu kullanabilirsiniz:
Kod Örneği
// İki matris tanımla
int matrisA[2][2] = {
{1, 2},
{3, 4}
};
int matrisB[2][2] = {
{5, 6},
{7, 8}
};
int matrisToplam[2][2]; // Sonuç matrisi
void setup() {
Serial.begin(9600); // Seri haberleşmeyi başlat
// Matrisleri topla
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
matrisToplam[i][j] = matrisA[i][j] + matrisB[i][j];
}
}
// Toplam matrisi yazdır
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
Serial.print(matrisToplam[i][j]);
Serial.print(" ");
}
Serial.println(); // Satır sonu
}
}
void loop() {
// Döngü içinde bir işlem yapılmıyor
}
Kod Açıklaması
- matrisA ve matrisB: Toplanacak iki matris.
- matrisToplam: Toplama işleminin sonucunu tutan matris.
- İç İçe Döngü: Her bir elemanı toplar ve sonucu yazdırır.
5. Örnek: LED Tablosu Kontrolü
Bir matris kullanarak LED'lerin açık/kapalı durumlarını kontrol edebilirsiniz. Örneğin, 3x3 bir LED matrisi:
Kod Örneği
// LED matris durumu (1: açık, 0: kapalı)
int ledDurum[3][3] = {
{1, 0, 1},
{0, 1, 0},
{1, 0, 1}
};
int ledPin[3][3] = {
{2, 3, 4},
{5, 6, 7},
{8, 9, 10}
};
void setup() {
// Tüm LED pinlerini çıkış olarak ayarla
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
pinMode(ledPin[i][j], OUTPUT);
}
}
// LED durumlarını uygula
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
digitalWrite(ledPin[i][j], ledDurum[i][j]);
}
}
}
void loop() {
// Döngü içinde bir işlem yapılmıyor
}
Kod Açıklaması
- ledDurum: Her LED'in açık/kapalı durumunu tutar.
- ledPin: Her LED'in bağlı olduğu pin numaralarını tutar.
- setup(): LED durumlarını başlangıçta uygular.
6. Sonuç
Arduino'da çok boyutlu diziler, verileri düzenli bir şekilde saklamak ve manipüle etmek için güçlü bir araçtır. Matrislerle, veri hesaplamaları, LED kontrolü ve daha fazlası gibi birçok işlem yapılabilir. Yukarıdaki örnekler, bu tür dizilerin nasıl tanımlanacağını ve kullanılacağını göstermektedir.
0 Yorumlar