Strict Standards: Static function Automattic\Jetpack\My_Jetpack\Product::get_name() should not be abstract in /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php on line 141

Strict Standards: Static function Automattic\Jetpack\My_Jetpack\Product::get_title() should not be abstract in /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php on line 148

Strict Standards: Static function Automattic\Jetpack\My_Jetpack\Product::get_description() should not be abstract in /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php on line 155

Strict Standards: Static function Automattic\Jetpack\My_Jetpack\Product::get_long_description() should not be abstract in /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php on line 162

Strict Standards: Static function Automattic\Jetpack\My_Jetpack\Product::get_features() should not be abstract in /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php on line 169

Strict Standards: Static function Automattic\Jetpack\My_Jetpack\Product::get_pricing_for_ui() should not be abstract in /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php on line 176

Strict Standards: Static function Automattic\Jetpack\My_Jetpack\Product::get_manage_url() should not be abstract in /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php on line 183

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php:141) in /home/kodlabaf/public_html/wp-content/plugins/pe-recent-posts/pe-recent-posts.php on line 21

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php:141) in /home/kodlabaf/public_html/wp-content/plugins/pe-recent-posts/pe-recent-posts.php on line 21

Warning: Cannot modify header information - headers already sent by (output started at /home/kodlabaf/public_html/wp-content/plugins/jetpack/jetpack_vendor/automattic/jetpack-my-jetpack/src/products/class-product.php:141) in /home/kodlabaf/public_html/wp-includes/feed-rss2.php on line 8
kodlabafra – KodlaBafra https://kodlabafra.org Bafra Kodlama Merkezi Sat, 07 Oct 2023 12:11:03 +0000 tr hourly 1 https://wordpress.org/?v=6.0.8 https://i0.wp.com/kodlabafra.org/wp-content/uploads/2018/11/cropped-logoKB-1.png?fit=32%2C32&ssl=1 kodlabafra – KodlaBafra https://kodlabafra.org 32 32 154684607 CUMHURİYET 100 YAŞINDA! https://kodlabafra.org/2023/10/07/cumhuriyet-100-yasinda/?utm_source=rss&utm_medium=rss&utm_campaign=cumhuriyet-100-yasinda Fri, 06 Oct 2023 22:23:49 +0000 https://kodlabafra.org/?p=2997 Bu uygulamada Cumhuriyetimizin 100. Yılı’nı kodlarla ifade etmek istedik. Etkinlik iki bölümden oluşacaktır. Birinci bölüm sadece web üzerinden]]>

Bu uygulamada Cumhuriyetimizin 100. Yılı’nı kodlarla ifade etmek istedik. Etkinlik iki bölümden oluşacaktır. Birinci bölüm sadece web üzerinden yapılabilecek ve bu uygulamayı yapmak için internet erişimi olan bir bilgisayar veya etkileşimli tahta yeterli olacaktır. İkinci bölüm ise elinde Micro:Bit olanlar için servo motor ile yapılacaktır. Servo motora bir adet Türk Bayrağı takılarak, Micro:Bit’in bu bayrağı sallaması için kodlar yazılacaktır.

Simülatöre ulaşmak için tıklayınız.

Birinci Bölüm:

Bestesi Sefai ACAY’a ait olan “Cumhuriyet Hürriyet Demek” müziğinin  notalarını macecode.microbit.org sitesi üzerinden kodlayacağız. Aynı zamanda Micro:Bit’in ekranında kayan yazı şeklinde “CUMHURİYET 100 YASINDA!” yazısı görünecektir. 

Biz müziğin kontrolünün bizde olması için “A” butonu ile müziği başlatacağız, sizler burada başlanğıç kodunu “program başladığında” şeklinde kullanabilirsiniz. Bu durumda program başladığı anda müzik başlayacaktır.

Micro:Bİt’in müzik çalması için Müzik menüsünü kullanacağız. Gerekli olan kod bloğu aşağıda verilmiştir. Ayrıca Simülatöre tıklayarak kodları deneyebilir ve indirebilirsiniz.

Öncelikle ekranda kayan yazı şeklinde “CUMHURİYRT 100 YAŞINDA!” yazdıralım. Bunun için aşağıdaki kodları yazıyoruz.

Ardından “Cumhuriyet Hürriyet Demek” müziğinin notalarını kodlar ile bir araya getiriyoruz.Bunun için aşağıdaki kodları yazıyoruz.

İkinci Bölüm:

Bu bölümde Micro:Bit’e bir adet servo motor bağlanacaktır. Servo motorun açı değerleri kodlar ile sürekli olarak değiştirilecektir. Böylece Micro:Bit ,motora bağlanan Türk Bayrağı’nı devamlı olarak sallama hareketini gerçekleştirecektir. Bu bölümü simülasyon üzerinde de yapabilirsiniz.

Servo motor sayısı artırılarak, bayrak sayısı artırılabilir.

]]>
2997
Dijital Termometre (Tinkercad – Sanal) https://kodlabafra.org/2023/10/03/dijital-termometre-tinkercad-sanal/?utm_source=rss&utm_medium=rss&utm_campaign=dijital-termometre-tinkercad-sanal Tue, 03 Oct 2023 14:36:51 +0000 https://kodlabafra.org/?p=2973 Tinkercad web sitesi üzerinden sanal olarak robotik kodlama uygulaması yaparak dijital termometre yapacağız. Bunun için bize gerekli olan sadece bilgi]]> Tinkercad web sitesi üzerinden sanal olarak robotik kodlama uygulaması yaparak dijital termometre yapacağız. Bunun için bize gerekli olan sadece bilgisayar ve internet 🙂 Eğer okulunuzda ya da sizde fiziksel olarak kullanabileceğiniz arduino, lcd Ekran ve tmp modülü varsa bunu gerçekten aynı devre ve kodlarla yapabilirsiniz. kodlabafra.org internet sitemiz üzerinden mblock ya da arduino ide kodlarına ulaşabilirsiniz. Bizim bu uygulamamızda robotik olarak hiçbir malzemeye ihtiyacımız yok sanal olarak kullanacağız.

Başlayalım. Önce Tinkercad sitesine giriş yapın. Bu siteyi 3D tasarımlar içinde kullanabilirsiniz.

Devre tasarımı seçiyoruz ve aşağıdaki malzeme listesini sol taraftaki alana sürüklüyoruz.

Arduino ile termometre yapımı için Gerekli Malzemeler:

  • 1 Adet Arduino Uno
  • 1 Adet 16×2 LCD Ekran i2c Modüllü
  • 1 Adet Tmp36 Sıcaklık Sensörü
  • Breadboard
Devreyi yukarıdaki resimdeki gibi bağlantı kurduğunuzda kod yazmaya geçebilirsiniz. Kod olmadan yaptığımız devre çalışmaz. Kabloları resimdeki farklı renklerde kullanarak daha anlaşılır devre tasarımı olmasını sağlayınız. Sağ üst köşeden kod penceresini açın.

Yukarıdaki kodları yazdıktan sonra simülasyonu başlat diyerek aşağıdaki gibi çalışmasını gözlemleyiniz. Eğer yapamazsanız sayfanın altında yapılmış uygulama linki bulunmaktadır 🙂

Uygulama Yapılmış Hali: https://www.tinkercad.com/things/gN72P2899sn

]]>
2973
Arduino Park Sensörü Uygulaması (Ultrasonik HC-SR04) https://kodlabafra.org/2021/12/03/arduino-park-sensoru-uygulamasi-ultrasonik-hc-sr04/?utm_source=rss&utm_medium=rss&utm_campaign=arduino-park-sensoru-uygulamasi-ultrasonik-hc-sr04 Fri, 03 Dec 2021 14:47:40 +0000 https://kodlabafra.org/?p=2569 Park Sensörü Uygulaması ile amacımız günümüz araçlarında olan park sensörü mantığını kullanarak hareket edelim.Belli kademelerle yazdığı]]> Park Sensörü Uygulaması ile amacımız günümüz araçlarında olan park sensörü mantığını kullanarak hareket edelim.Belli kademelerle yazdığımız kodumuzda yaklaşan cisme göre hem buzzer hem de led aracılığı ile yaklaşan mesafeyi algılamaya çalışacağız.Mesafe yaklaştıkça sıra sıra ledler devreye girecek ve buzzer yaklaşan cisme göre ses şiddetini arttıracak.

Kullanılan Malzemeler
ARDUINO
4 ADET LED
5 ADET 220 OHM DİRENÇ
1 ADET BUZZER
BREAD BOARD
YETERİ KADAR JUMPER KABLO

Devrede Arduino,Ultrasonik Mesafe Sensörü,4 Led ve 1 Buzzer kullanılmıştır.Ledlerin uzun bacakları sırasıyla 2,3,4 ve 5. pinlere Buzzerın uzun bacağı ise 6. pine bağlanmıştır.Buzzer ve Ledlerin kısa bacakları ise zarar görmemeleri için direnç yardımıyla – pinine bağlanmıştır.Ultra Sonik Mesafe sensörünün Trig ve Echo pinleri 11 ve 12. pinlere Vcc ve Gnd ise + ve – pinine bağlanmıştır.
int trigPin = 12;
int echoPin = 13;
long sure, mesafe;

void setup () {
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(2, OUTPUT);
  Serial.println("Arduino İle Mesafe Sensörü Uygulaması Başlatılıyor...");
  delay(3000);
}

void loop () {
  mesafeFonk();
  Serial.print(mesafe);
  Serial.println(" cm uzaklıkta");
  if (mesafe <= 20 && mesafe >= 15) {
    digitalWrite(2, HIGH);
  }
  else if (mesafe <= 14 && mesafe >= 10) {
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
  }
  else if (mesafe <= 9 && mesafe >= 5) {
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
  }
  else if (mesafe <= 4) {
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    digitalWrite(4, HIGH);
    digitalWrite(5, HIGH);
    buzerSinyal();
  }
  else {
    digitalWrite(2, LOW);
    digitalWrite(3, LOW);
    digitalWrite(4, LOW);
    digitalWrite(5, LOW);
    digitalWrite(6, LOW);
  }
}

void buzerSinyal() {
  digitalWrite(6, HIGH);
  delay(200);
  digitalWrite(6, LOW);
  delay(200);
}
void mesafeFonk() {                    // Mesafeyi ölçmek için fonksiyon.
  digitalWrite(trigPin, LOW);
  delayMicroseconds(3);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  sure = pulseIn(echoPin, HIGH);
  mesafe = (sure / 29.1) / 2;
  return mesafe;                     // Mesafeyi döndürüyoruz
}

İlk olarak değişkenler ve Mesafe Sensörünün Trig ve Echo pinleri tamamlanmıştır.”mesafeFonk()” Fonksiyonu ile mesafe değeri alınmıştır. Mesafe azaldıkça ledler sırasıyla yanacak ve son kısımda 5 ten küçükse tüm ledler yanacak ve Buzzer ses çıkartmaya başlar mesafenin yakınlığına göre yanan ledlerin sayısı artar.

]]>
2569
Taş-Kağıt-Makas https://kodlabafra.org/2021/10/19/tas-kagit-makas/?utm_source=rss&utm_medium=rss&utm_campaign=tas-kagit-makas Tue, 19 Oct 2021 17:31:55 +0000 https://kodlabafra.org/?p=2085 Büyükten küçüğe severek oynadığımız ve çok eğlendiğimiz Taş-Kağıt-Makas oyununu Micro:Bit kullanarak programlayacağız. Oyunun gerçeğind]]> Büyükten küçüğe severek oynadığımız ve çok eğlendiğimiz Taş-Kağıt-Makas oyununu Micro:Bit kullanarak programlayacağız. Oyunun gerçeğinde bir elimizi yumruk şeklinde yukarı aşağı yaparak taş-kağıt-makas deriz ve birini yaparız. Micro:bit’te de gerçeğine benzemesi için “salla (on shake)” özelliğini kullanacağız. Aynı elimizi yumruk yapıp yukarı aşağı hareket ettirir gibi micro:bit’i sallayacağız ve taş, kağıt ve makas sembollerinden birinin led ekranda görünmesini sağlayacağız.

Simülatöre ulaşmak için tıklayınız.

Micro:bit’in led ekranında taş-kağıt-makas sembollerinden birinin görünmesini istiyoruz. Bu nedenle 3 seçeneğimiz mevcut. Amacımız led ekranda bu bu 3 seçeneğin rastgele çıkması. Bunu sağlamak için “rastgele deger seçimi (pick random)” kod bloğunu kullanacağız. Bu kod bloğu ile Micro:bit her sallandığında 0 ile 2 arasında rastgele bir değer (0-1-2) ürettireceğiz. Üretilen değeri saklamak amacıyla “sayi” adında bir de değişken oluşturuyoruz.

Üretilen bu değeri kontrol ederek, aldığı her bir değeri taş, kağıt veya makas görsellerinden biri ile eşleştireceğiz. Benim algoritmama göre üretilen değer :

“0” ise “Taş”,

“1” ise “Kağıt”

“2” ise “Makas”

görsellerini göstermesi yönünde. Siz sıralamayı kendinize göre tercih edebilirsiniz.

Bu oyunu kendinize göre ses ekleyerek ve başlangıç yönergeleri vererek geliştirebilirsiniz.

]]>
2085
Termostat (DHT11 Lcd de Gösterme) https://kodlabafra.org/2019/08/11/termostat-dht11-lcd-de-gosterme/?utm_source=rss&utm_medium=rss&utm_campaign=termostat-dht11-lcd-de-gosterme Sun, 11 Aug 2019 14:34:00 +0000 https://kodlabafra.org/?p=1636 Evlerimizde sıcaklık değerlerini ölçtüğümüz termostatlar sıklıkla kullanılmaktadır. Bu uygulamamızda LCD ekran üzerinden sıcaklık ve nem d]]> Evlerimizde sıcaklık değerlerini ölçtüğümüz termostatlar sıklıkla kullanılmaktadır. Bu uygulamamızda LCD ekran üzerinden sıcaklık ve nem değerlerini gösteren termostat yapacağız. Bir önceki uygulamamızda DHT11 ile sıcaklık ve nem ölçümü yapmıştık. Ona ek olarak LCD Ekranda gösterim yapıyoruz.

Devre Şeması
#include <LiquidCrystal_I2C.h>
#include <dht11.h>
dht11 DHT11;
LiquidCrystal_I2C lcd(0x3f, 16, 2);  // LCD Ekran özelliklerini tanımladık.
void setup()
{
  lcd.begin();    // LCD Ekranı çalıştır.
  DHT11.attach(2);
  Serial.begin(9600); // Seri iletişimi başlatıyoruz.
  Serial.println("DHT11 Test Programi");
}

void loop()
{
  // Bir satır boşluk bırakıyoruz serial monitörde.
  Serial.println();
  // Sensörün okunup okunmadığını konrol ediyoruz.
  // chk 0 ise sorunsuz okunuyor demektir. Sorun yaşarsanız
  // chk değerini serial monitörde yazdırıp kontrol edebilirsiniz.
  int chk = DHT11.read();

  // Sensörden gelen verileri serial monitörde yazdırıyoruz.
  Serial.print("Sicaklik (Celcius): ");
  Serial.println((float)DHT11.temperature, 2);
  Serial.print("Nem (%): ");
  Serial.println((float)DHT11.humidity, 2);

  lcd.setCursor(0, 0);   // ilk satır
  lcd.print("Sicaklik: ");
  lcd.setCursor(10, 0);   // ilk satıra 11. karekterden sonra yazdık.
  lcd.print((float)DHT11.temperature, 2);
  lcd.setCursor(0, 1);        // ikinci satır
  lcd.print("Nem: ");
  lcd.setCursor(5, 1);        // ikinci satıra 6. karekterden sonra yazdık.
  lcd.print((float)DHT11.humidity, 2);
  
  // 2 saniye bekliyoruz. 2 saniyede bir veriler ekrana yazdırılacak.
  delay(2000);
}
]]>
1636
DHT11 ile Sıcaklık ve Nem Ölçümü https://kodlabafra.org/2019/08/11/dht11-ile-termostat-sicaklik-ve-nem-olcumu/?utm_source=rss&utm_medium=rss&utm_campaign=dht11-ile-termostat-sicaklik-ve-nem-olcumu Sun, 11 Aug 2019 14:05:11 +0000 https://kodlabafra.org/?p=1632 Evlerimizde sıklıkla kullandığımız termostatların bir benzerini arduino ile yapacağız. Arduino ile ortamın sıcaklık ve Nem değerlerini ölçme]]> Evlerimizde sıklıkla kullandığımız termostatların bir benzerini arduino ile yapacağız. Arduino ile ortamın sıcaklık ve Nem değerlerini ölçmek için çeşitli sensörler kullanıyor. Daha önce lm35 kullanmıştık. Dht11 ise sıcaklık değerinin yanısıra ortamın nem değerini de ölçüyor. Bu uygulamamızda DHT11 modülünü kullanarak sıcaklık ve nem ölçümü yapacağız. Serial Ekranda sıcaklık ve nem değerlerini göreceğiz.

Malzemeler:

  • Arduino Uno
  • Dht11 Modülü
  • Jumper Kablo
Devre Şeması

+ —> 5v Pin

– —> GND Pin

S –> 2 Dijital pin

DHT11 in 5v, Gnd ve Sinyal bağlantılarını yaptıktan sonra kod kısmına geçmeden dht11 modülünü kolaylıkla kullanmamızı sağlayan kütüphaneyi Arduino programının içine yüklemeliyiz. Aşağıdan indireceğiniz DHT11.zip dosyasını Arduino programı içinden Taslak -> Zip Kitaplığı ekle diyerek kolayca ekleyebilirsiniz.

#include <dht11.h>
dht11 DHT11;
  
void setup()
{
  DHT11.attach(2);
  Serial.begin(9600); // Seri iletişimi başlatıyoruz.
  Serial.println("DHT11 Test Programi");
}

void loop()
{
  // Bir satır boşluk bırakıyoruz serial monitörde.
  Serial.println();
  // Sensörün okunup okunmadığını konrol ediyoruz. 
  // chk 0 ise sorunsuz okunuyor demektir. Sorun yaşarsanız
  // chk değerini serial monitörde yazdırıp kontrol edebilirsiniz.
  int chk = DHT11.read();

  // Sensörden gelen verileri serial monitörde yazdırıyoruz.
  Serial.print("Nem (%): ");
  Serial.println((float)DHT11.humidity, 2);

  Serial.print("Sicaklik (Celcius): ");
  Serial.println((float)DHT11.temperature, 2);

  Serial.print("Sicaklik (Fahrenheit): ");
  Serial.println(DHT11.fahrenheit(), 2);

  Serial.print("Sicaklik (Kelvin): ");
  Serial.println(DHT11.kelvin(), 2);

  // Çiğ Oluşma Noktası, Dew Point
  Serial.print("Cig Olusma Noktasi: ");
  Serial.println(DHT11.dewPoint(), 2);

  // 2 saniye bekliyoruz. 2 saniyede bir veriler ekrana yazdırılacak.
  delay(2000);

}
]]>
1632
Bluetooth Kontrollü Araba https://kodlabafra.org/2019/05/09/bluetooth-kontrollu-araba/?utm_source=rss&utm_medium=rss&utm_campaign=bluetooth-kontrollu-araba Thu, 09 May 2019 13:08:10 +0000 https://kodlabafra.org/?p=1610 Yazıyı güncellenmeye devam ediyoruz.]]> Yazıyı güncellenmeye devam ediyoruz.

#include <SoftwareSerial.h>  // Software Serial kütüphanesini ekledik.
SoftwareSerial bluetooth(10, 11);  // Bluetooth TX, RX pinler

const int solileri = 7;
const int solgeri = 6;
const int sagileri = 4;
const int saggeri = 5;
const int solHiz = 9; // Pwn pini hız ayarı için Jumperları sökünce
const int sagHiz = 3; // Pwn pini hız ayarı için Jumperları sökünce

int hiz = 175;

void setup() {
  Serial.begin(9600);    // Bilgisayar haberleşmesi başlat
  bluetooth.begin(9600);      // Bluetooth haberleşmesi başlat
  pinMode(solileri, OUTPUT);
  pinMode(solgeri, OUTPUT);
  pinMode(solHiz, OUTPUT); //Motorlarımızı çıkış olarak tanımlıyoruz.
  pinMode(sagileri, OUTPUT);
  pinMode(saggeri, OUTPUT);
  pinMode(sagHiz, OUTPUT);
}

void loop() {
  if (bluetooth.available() > 0) {   /*Bluetooth’tan veri bekliyoruz */
    char tus = (char)bluetooth.read();
    if ( tus == 'w' ) {
      ileri();
    }
    if ( tus == 's' ) {
      geri();
    }
    if ( tus == 'a' ) {
      sol();
    }
    if ( tus == 'd' ) {
      sag();
    }
    if ( tus == 'x' ) {
      dur();
    }
    if ( tus == '+' ) {
      hiz = hiz + 25;
      Serial.println(hiz);  // Serial ekranda Araç hızı görmek için
      if (hiz > 255)
      {
        hiz = 255;
      }
    }
    if ( tus == '-' ) {
      hiz = hiz - 25;
      Serial.println(hiz); // Serial ekranda Araç hızı görmek için
      if (hiz < 0)
      {
        hiz = 0;
      }
    }
  }

}

void ileri() { // Robotun ileri yönde hareketi için fonksiyon tanımlıyoruz.
  digitalWrite(sagileri, HIGH); // Sağ motorun ileri hareketi aktif
  digitalWrite(saggeri, LOW); // Sağ motorun geri hareketi pasif
  analogWrite(sagHiz, hiz); // Sağ motorun hızı 150

  digitalWrite(solileri, HIGH); // Sol motorun ileri hareketi aktif
  digitalWrite(solgeri, LOW); // Sol motorun geri hareketi pasif
  analogWrite(solHiz, hiz); // Sol motorun hızı 150  
}
void sag() { // Robotun sağa dönme hareketi için fonksiyon tanımlıyoruz.
  digitalWrite(sagileri, HIGH); // Sağ motorun ileri hareketi aktif
  digitalWrite(saggeri, LOW); // Sağ motorun geri hareketi pasif
  analogWrite(sagHiz, 0); // Sağ motorun hızı 0 (Kapalı)

  digitalWrite(solileri, HIGH); // Sol motorun ileri hareketi aktif
  digitalWrite(solgeri, LOW); // Sol motorun geri hareketi pasif
  analogWrite(solHiz, hiz); // Sol motorun hızı 150
}
void sol() { // Robotun sağa dönme hareketi için fonksiyon tanımlıyoruz.
  digitalWrite(sagileri, HIGH); // Sağ motorun ileri hareketi aktif
  digitalWrite(saggeri, LOW); // Sağ motorun geri hareketi pasif
  analogWrite(sagHiz, hiz); // Sağ motorun hızı 150

  digitalWrite(solileri, HIGH); // Sol motorun ileri hareketi aktif
  digitalWrite(solgeri, LOW); // Sol motorun geri hareketi pasif
  analogWrite(solHiz, 0); // Sol motorun hızı 0 (Kapalı)
}


void geri() { // Robotun geri yönde hareketi için fonksiyon tanımlıyoruz.
 digitalWrite(sagileri, LOW); // Sağ motorun ileri hareketi pasif
  digitalWrite(saggeri, HIGH); // Sağ motorun geri hareketi aktif
  analogWrite(sagHiz, hiz); // Sağ motorun hızı 150

  digitalWrite(solileri, LOW); // Sol motorun ileri hareketi pasif
  digitalWrite(solgeri, HIGH); // Sol motorun geri hareketi aktif
  analogWrite(solHiz, hiz); // Sol motorun hızı 150
}
void dur() { // Robotun geri yönde hareketi için fonksiyon tanımlıyoruz.
  digitalWrite(sagileri, HIGH); // Sağ motorun ileri hareketi aktif
  digitalWrite(saggeri, LOW); // Sağ motorun geri hareketi pasif
  analogWrite(sagHiz, 0); // Sağ motorun hızı 0 (Kapalı)

  digitalWrite(solileri, HIGH); // Sol motorun ileri hareketi aktif
  digitalWrite(solgeri, LOW); // Sol motorun geri hareketi pasif
  analogWrite(solHiz, 0); // Sol motorun hızı 0 (Kapalı)
}
]]>
1610
ARDUİNO 5110 Ekran Kullanımı https://kodlabafra.org/2019/05/07/arduino-5110-ekran-kullanimi/?utm_source=rss&utm_medium=rss&utm_campaign=arduino-5110-ekran-kullanimi Tue, 07 May 2019 13:55:23 +0000 https://kodlabafra.org/?p=1587 Nokia’nın 5110 modellerinde kullanılan grafik LCD ekranlar oldukça yaygın kullanım alanına sahiptir. Birçok projede kullanım kolaylığı açıs]]> Nokia’nın 5110 modellerinde kullanılan grafik LCD ekranlar oldukça yaygın kullanım alanına sahiptir. Birçok projede kullanım kolaylığı açısından tercih edilmektedir. Grafik LCD ekranlar, karakter LCD ekranlara göre bizlere daha fazla esneklik sunmaktadır. Projemizde kullandığımız karakterlerin fontundan, boyutuna, çeşitli resimlerin gösteriminden grafiksel gösterimlere kadar geniş bir kullanım alanı sağlamaktadır.

5110 LCD modülü 84×48 piksel çözünürlüğe sahiptir. Çalışma gerilimi Vcc = 3.3V’tur. Üzerinde Philps PCD8544 sürücü bulunmaktadır. LCD modül üzerinde pin bağlantı isimleri görülmektedir.

Arduino 5110 LCD ekran kütüphanesi buradan indirebilirsiniz.

#include <LCD5110_Basic.h>
LCD5110 myGLCD(8, 9, 10, 11, 12);
extern uint8_t SmallFont[];
extern uint8_t MediumNumbers[];
extern uint8_t MediumNumbers[];

void setup()
{
  myGLCD.InitLCD();
}

void loop()
{
  myGLCD.clrScr();
  myGLCD.setFont(SmallFont);
  myGLCD.print("Bafra", CENTER, 0);
  myGLCD.print("Kodlama", CENTER, 8);
  myGLCD.print("Merkezi", CENTER, 16);
  myGLCD.print("KodlaBafra", CENTER, 45);
  delay(1000);
  myGLCD.setFont(MediumNumbers);

  for (int i =0; i<=20; i++)
  {
    myGLCD.printNumI(i,CENTER,24);
    delay(500);
  }
  
  myGLCD.enableSleep();
  delay(1000);
  myGLCD.disableSleep();
  myGLCD.setFont(SmallFont);
  myGLCD.print("", CENTER, 0);
  myGLCD.print("Hemen", CENTER, 16);
  myGLCD.print("Harekete", CENTER, 24);
  myGLCD.print("Gec", CENTER, 32);
  delay(5000);
}

LCD5110_Basic kütüphanesinde bulunan diğer komutlar ise aşağıda görüldüğü gibidir.

myGLCD.InitLCD();Ekranı başlatır.
myGLCD.setContrast(a);a; 0-127 aralığında kontrast girilir.
myGLCD.clrScr();Ekranı siler.
myGLCD.setFont(SmallFont);6×8 piksel büyüklüğünde font
myGLCD.setFont(MediumNumbers);12×16 piksel büyüklüğünde font
myGLCD.setFont(BigNumbers);14×24 piksel büyüklüğünde font
myGLCD.print(“a”,b,c);a; metin girilir, b,c; koordinat
myGLCD.printNumI(a,b,c);a; sayı değeri ya da değişken, b, c; koordinat
myGLCD.drawBitmap(a,b,c,d,e);a, b; koordinat, c; resim adı, c, d; çözünürlük
myGLCD.enableSleep();Uyku moduna geçer.
myGLCD.disableSleep();Uyku modundan çıkar.
]]>
1587
Arduino Cisim Algılama (TCRT5000) https://kodlabafra.org/2019/05/07/arduino-cisim-algilama-tcrt5000/?utm_source=rss&utm_medium=rss&utm_campaign=arduino-cisim-algilama-tcrt5000 Tue, 07 May 2019 12:59:46 +0000 https://kodlabafra.org/?p=1583 TCRT5000 Kızılötesi Sensör ile uzaklığı ölçeceğiz ve uzaklık değeri istediğimiz değerin altındaysa ledimizi yakacağız. TCRT5000 Kızılöt]]> TCRT5000 Kızılötesi Sensör ile uzaklığı ölçeceğiz ve uzaklık değeri istediğimiz değerin altındaysa ledimizi yakacağız. TCRT5000 Kızılötesi Sensör 2 mm ile 15 mm arasında sağlıklı değerler verebilen çok uygun fiyatlı bir sensör. Çizgi izleyen robot gibi projelerinizde kullanmak için de oldukça uygundur.

İhtiyacınız olan malzemeler;

  • 1 Adet Arduino Uno R3
  • 1 Adet Breadboard
  • 1 Adet TCRT5000 Kızılötesi Sensör
  • 1 Adet 220 Ohm Direnç
  • 1 Adet 100 Ohm Direnç
  • 1 Adet 10.000 (10K) Ohm Direnç
  • 1 Adet Led
  • 9 Adet Erkek-Erkek Jumper Kablo

Devreyi hazırladıysak kartımızı bilgisayara bağlıyor ve IDE ye aşağıdaki kodları yazıp derleyip kartımıza yüklüyoruz.

void setup() {
pinMode(4,OUTPUT);   // led bağlantımız.
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(A0); //A0 pininden tcrt değerini okuyoruz.
Serial.print(sensorValue); //Serial Ekrana sensör değerini yazıyoruz.
   if (sensorValue < 900){
   digitalWrite(4,HIGH);
   }
   else{
   digitalWrite(4,LOW);
   }
delay(10);
}
]]>
1583
Arduino Rfid Kart Uygulaması https://kodlabafra.org/2019/05/07/arduino-rfid-kart-uygulamasi/?utm_source=rss&utm_medium=rss&utm_campaign=arduino-rfid-kart-uygulamasi Tue, 07 May 2019 12:01:16 +0000 https://kodlabafra.org/?p=1568 Radyo Frekanslı Tanıma (Radio Frequency Identification-RFID) teknolojisi, canlı ve cansız her türlü nesnenin dokunmadan belirli bir mesafeden tanınm]]> Radyo Frekanslı Tanıma (Radio Frequency Identification-RFID) teknolojisi, canlı ve cansız her türlü nesnenin dokunmadan belirli bir mesafeden tanınmasında ve izlenmesinde kullanılır.  RFID teknolojileri giderek artan büyük bir oranda dünya genelinde ve ülkemizde yaygınlaşmakta ve birçok sektörde kullanılmaktadır. Otomotiv, akaryakıt, lojistik, perakendecilik, tarım, sağlık, ilaç, tekstil, finans, bankacılık, enerji, kamu, üretim, güvenlik, turizm gibi birçok sektörde geniş uygulama alanlarında aktif ve yaygın olarak kullanılmaktadır.

RC522 RFID kartı, NFC frekansı olan 13,56 MHz frekansında çalışan tagler üzerinde okuma ve yazma işlemeni yapabilen, düşük güç tüketimli, ufak boyutlu bir karttır.

Not: 125 KHz frekansında çalışan RFID kartlarını desteklememektedir. Yalnızca 13,56 MHz frekansında çalışan kartları desteklemektedir. NFC modülleri bu frekansta çalıştığı için NFC kartları ile beraber kullanılabilir.

Rfid Kart - Rfid Anahtarlık - Rfid Okuyucu
rfid devre Şeması
Rfid Bağlantı Tablosu

Arduino Uno Bağlantıları aşağıdaki gibi olmalıdır.

  • MOSI: Pin 11
  • MISO: Pin 12
  • SCK: Pin 13
  • SS/SDA: Pin 10
  • RST: Pin 9

Arduino’ya Rfid kütüphanemizi zip olarak kitaplığa eklemek için buradan indirebilirsiniz.

Arduino uygulamamızı iki aşamalı olarak yapıyoruz. Birinci aşamada arduino kodlarımız ile rfid kart ve rfid anahtarlığımızın seri numaraları bilgilerini okuyoruz. Daha sonra önce ikinci aşamada bu kartların seri numara bilgilerini kullanarak ledlerimiz kontrol edeceğiz.

Arduino Kodlarımız – Rfid Kart Okuma

#include <SPI.h>   // SPI haberleşme kütüphanesi ekliyoruz.
#include <RFID.h>  // Rfid kütüphanemizi ekliyoruz.
RFID rfid(10,9);       //SDA,  RST pini
void setup() {
  Serial.begin(9600);  //Serial port kanalımızı açıyoruz.
  SPI.begin();         // SPI çalıştır.
  rfid.init();         //  Rfid okumaya hazır.
}

void loop() {
  
  if(rfid.isCard())      // Kart algılandı mı?
  {
    if(rfid.readCardSerial())   // Kart seri numaraları bilgileri okunuyor.
    {
// Seri numarasını dizi olarak öğreniyoruz. Hexadecimal'a çeviriyoruz.
      Serial.print("Kart ID: ");
      Serial.print(rfid.serNum[0],HEX);   
      Serial.print(rfid.serNum[1],HEX);  
      Serial.print(rfid.serNum[2],HEX);
      Serial.print(rfid.serNum[3],HEX);
      Serial.println(rfid.serNum[4],HEX);
    }
    rfid.halt();     // Kart yeninden okumaya hazır.
  }
}

Buradaki kodlarımız ile rfid kart ve rfid anahtarlığımızı okutuyoruz. Rfid Kartlarımızın seri numaralarını öğreniyoruz.

Şimdi uygulamamızı geliştiriyoruz. Burada hem kart okuyoruz hem de okuduğumuz kartlarla ledlerimizi yakıyoruz.

#include <SPI.h>
#include <RFID.h>
RFID rfid(10,9); //SS veya SDA pini, RST pini
void setup() {
  Serial.begin(9600);
  SPI.begin();
  rfid.init();
  pinMode(2, OUTPUT);  // yeşil led bağlantısı
  pinMode(3, OUTPUT);  // kırmızı led bağlantısı
}
// yukarıda öğrendiğimiz Rfid seri kart numarasını buraya girebiliriz.
byte kartim[5] = {0x14,0x42,0x68,0xEB,0xD5}; 
void loop() {
  boolean gecerlikart = true;
  if(rfid.isCard())
  {
    if(rfid.readCardSerial())
    {
      Serial.print("Kart ID: ");
      Serial.print(rfid.serNum[0],HEX);
      Serial.print(rfid.serNum[1],HEX);
      Serial.print(rfid.serNum[2],HEX);
      Serial.print(rfid.serNum[3],HEX);
      Serial.println(rfid.serNum[4],HEX);
    }
    for(int i=0; i<5; i++)
    {
      if(rfid.serNum[i] != kartim[i])
      {
        gecerlikart = false;
      }
    }
    if(gecerlikart==true)
    {
      Serial.println("Merhaba");
      digitalWrite(2, HIGH);
      delay(1000);
      digitalWrite(2, LOW);
    }
    else
    {
      Serial.println("Eslesme Saglanamadi!");
      digitalWrite(3, HIGH);
      delay(1000);
      digitalWrite(3, LOW);
    }
    rfid.halt();
  }
}

Daha önce okuttuğumuz rfid kartların seri numaralarını burada birini geçerli kart olarak tanımladık. Geçerli kartı okuttuğumuzda devremize bağladığımız yeşil led yanacak ve serial ekranda “Merhaba” diyecek. Diğer rfid kartı okuttuğumuzda ise kırmızı led yanacak ve “Eşleşme Sağlanamadı” diyecek.

]]>
1568