23 Aralık 2021 Perşembe

Arduino ile LCD Uygulaması

 6-İ sınıfı öğrencilerinden Alper KIRSAY ve Yiğit MANGTAY Arduino ile 16x2 LCD ekran Text proje uygulaması yaptılar.

2 satırdan, 16 sütundan oluşan ve her hücresinde bir karakter gösterimini yapabilen bu LCD ekranda metin uygulamasını başarıyla kodlayıp gerçekleştiren öğrencilerimizi kutluyoruz.


TEBRİKLER!



19 Aralık 2021 Pazar

ARDUINO SICAKLIK VE NEM ÖLÇÜMÜ (DHT11 Sensör ile)

 Sevgili Öğrenciler,


Arduino robotik setinizle projenin  kodları Arduino programında yazarak DHT11 sensör kullanıp  "Sıcaklık ve Nem ölçümü PROJESİ " yapıyoruz.

Projemizde, Kodla Türkiye Robotik setinde bulunan Junior Shield+ daki DHT11 bölümüne açık mavi renkteki sıcaklık&nem sensörünü takarak projeyi hazırlıyoruz.

Not: Projeyi başarıyla tamamladığınızda ölçüm sonuçları Arduino serial port ekranında görüntülenecektir.

Başarılar!






//Arduino Referans Kaynak Kodu:

// Global Değişkenler

int DHT11_Pin = 8; // DHT11 Data Pin


int Humidity = 0; 

int Temp = 0;

int TempComma = 0;

bool DHTError = false; // Checksum Error


 void DelayTimer(long int DelayValue){

  long int DelayTime = micros();

  do {

    

  }while (micros()-DelayTime < DelayValue);

  }


// Main DHT Void

void DHT11(){

long int DataTime = 0;

byte Result[45];

byte DataArray = 0;

byte DataCounter = 0;

byte DHTData[4];


bool BlockDHT=false;

 

 pinMode(DHT11_Pin,OUTPUT); 

 digitalWrite(DHT11_Pin,HIGH);

 DelayTimer(250000); //Wait 250millisec

 digitalWrite(DHT11_Pin,LOW);

 DelayTimer(30000);   //Wait 30millisec

 digitalWrite(DHT11_Pin,HIGH);

 DelayTimer(50); //Wait 50microsec

 pinMode(DHT11_Pin,INPUT); 


do {

  if (digitalRead(DHT11_Pin) == 0 && BlockDHT == false) {BlockDHT = true;Result[DataArray]=(micros()-DataTime);DataArray++;DataTime=micros();} //If DHT pin is low, go to next Dataset

  if (digitalRead(DHT11_Pin) == 1) {BlockDHT = false;} // As long as DHT pin is Hight add time in Microseconds to Result

  

}while((micros()-DataTime) < 150); // if DTH Sensor high for more than 150 usec, leave loop


for (int  i=2; i< DataArray; i++) {

  if (Result[i] <= 90) Result[i]=0; else Result[i]=1;

  //Serial.print(Result[i]);Serial.print(" ");

                                  }

 //Serial.println();

for (int  j=0; j< 5; j++){     // redo it for the 5 Bytes (40 Databits /8 = 5)

for (int  i=0; i< 8; i++) {bitWrite(DHTData[j], 7-i, Result[i+2+(j*8)]);}  // Create 5 Databytes from the 40 Databits (Ignoring the 2 first Databits)

}

// check checksum                            }

if (DHTData[4] == (DHTData[0]+DHTData[1]+DHTData[2]+DHTData[3])){Humidity = DHTData[0];Temp = DHTData[2];TempComma = DHTData[3];DHTError=false;} else DHTError=true; //If Checksum is worng, Temp=99 (Dataset 0-3 in addition = Dataset 4 = Checksum OK)

}

void setup() {

 Serial.begin(9600);

}

void loop() {

 DHT11();

  if (DHTError == false){Serial.print("NEM = ");Serial.print(Humidity);Serial.print("% ");Serial.print(" SICAKLIK = ");Serial.print(Temp);Serial.print(",");Serial.print(TempComma);Serial.println("°C ");} else Serial.println("Error");

  DelayTimer(500000); //wait 2,5 sec

}





9 Aralık 2021 Perşembe

Arduino RGB LED Projesi

 

Sevgili Öğrenciler,


Arduino robotik setinizle projenin  kodları Arduino programında yazarak Renkli Disko Topu Devresi gibi "RGB LED  PROJESİ " yapıyoruz.

Projede Kodla Türkiye Robotik setindeki Junior Shield+ daki hazır entegre RGB  Led   kullanılacak ve farklı renkler yanıp sönecektir.  Ledlerin yanma sönme süresini "time" parametresiyle istediğiniz gibi ayarlayıp değiştirebilirsiniz.

Not: RGB Ledin altındaki switch(anahtar) sağ konumda olmalıdır.

Başarılar!





//Arduino Referans Kaynak Kodu:


int red_light_pin= 11;

int green_light_pin = 10;

int blue_light_pin = 9;

int time=700;


void setup() {

  pinMode(red_light_pin, OUTPUT);

  pinMode(green_light_pin, OUTPUT);

  pinMode(blue_light_pin, OUTPUT);

}

void loop() {

  RGB_color(255, 0, 0); // Red

  delay(time);

  RGB_color(0, 255, 0); // Green

  delay(time);

  RGB_color(0, 0, 255); // Blue

  delay(time);

  RGB_color(255, 255, 125); // Raspberry

  delay(time);

  RGB_color(0, 255, 255); // Cyan

  delay(time);

  RGB_color(255, 0, 255); // Magenta

  delay(time);

  RGB_color(255, 255, 0); // Yellow

  delay(time);

  RGB_color(255, 255, 255); // White

  delay(time);

}

void RGB_color(int red_light_value, int green_light_value, int blue_light_value)

 {

  analogWrite(red_light_pin, red_light_value);

  analogWrite(green_light_pin, green_light_value);

  analogWrite(blue_light_pin, blue_light_value);

}



6 Aralık 2021 Pazartesi

Arduino & Buzzer ile Melodi Projesi

 

 Sevgili Öğrenciler,


Arduino robotik setinizle aşağıdaki referans kodları da Arduino programında yazarak Buzzer ile melodi çalma projesi  yapıyoruz.

Projede Kodla Türkiye Robotik setindeki Shielde entegre  buzzer ile "Yeniyıl Jingle Bells Melodisi"  kodlanıp çalınacaktır.

Başarılar!


//Arduino Referans Kaynak Kodu:

// * Jingle Bells
 

// TONES  ==========================================  
  
 //       note, period, &  frequency.
 #define  C     2100
 #define  D     1870 
 #define  E     1670
 #define  f     1580    // Does not seem to like capital F
 #define  G     1400 
 // Define a special note, 'R', to represent a rest
 #define  R     0
 // SETUP ============================================
 
 int speakerOut = 5;
 int DEBUG = 1;
 void setup() {
   pinMode(speakerOut, OUTPUT);
   if (DEBUG) {
     Serial.begin(9600); // Set serial out if we want debugging
   }
 }
 // MELODY and TIMING  =======================================
 //  melody[] is an array of notes, accompanied by beats[],
 //  which sets each note's relative length (higher #, longer note)
 int melody[] = {E, E, E,R,
 E, E, E,R,
 E, G, C, D, E, R,
 f, f, f,f, f, E, E,E, E, D ,D,E, D, R, G ,R,
 E, E, E,R,
 E, E, E,R,
 E, G, C, D, E, R,
 f, f, f,f, f, E, E, E,  G,G, f, D, C,R };
 int MAX_COUNT = sizeof(melody) / 2; // Melody length, for looping.
 // Set overall tempo
 long tempo = 10000;
 // Set length of pause between notes
 int pause = 1000;
 // Loop variable to increase Rest length
 int rest_count = 100; //<-BLETCHEROUS HACK; See NOTES
 // Initialize core variables
 int tone_ = 0;
 int beat = 0;
 long duration  = 0;
 // PLAY TONE  ==============================================
 // Pulse the speaker to play a tone for a particular duration
 void playTone() {
   long elapsed_time = 0;
   if (tone_ > 0) { // if this isn't a Rest beat, while the tone has
     //  played less long than 'duration', pulse speaker HIGH and LOW
     while (elapsed_time < duration) {
       digitalWrite(speakerOut,HIGH);
       delayMicroseconds(tone_ / 2);
       // DOWN
       digitalWrite(speakerOut, LOW);
       delayMicroseconds(tone_ / 2);
       // Keep track of how long we pulsed
       elapsed_time += (tone_);
     }
   }
   else { // Rest beat; loop times delay
     for (int j = 0; j < rest_count; j++) { // See NOTE on rest_count
       delayMicroseconds(duration); 
     } 
   }                                
 }
  
 void loop() {
  for (int i=0; i<MAX_COUNT; i++) {
    tone_ = melody[i];
    beat = 50;

    duration = beat * tempo; // Set up timing

    playTone();
    // A pause between notes...
    delayMicroseconds(pause);
  }
 }

//




30 Kasım 2021 Salı

ARDUINO LEDLİ 2022 YENİYIL PROJESİ (Karaşimşek Devresi ile)

 

 Sevgili Öğrenciler,


Arduino robotik setinizle aşağıdaki devre şemasını kurup kodları da Arduino programında yazarak Karaşimşek Devresi gibi "LEDLİ YENİYIL PROJESİ " yapıyoruz.

Projede Kodla Türkiye Robotik setindeki Junior Shield+ daki hazır entegre renkli   Ledler   kullanılacak ve bu Ledler  yanıp sönecektir. Ledlerin yanma sönme süresi istediğiniz gibi ayarlayıp değiştirebilirsiniz.

Başarılar!



//Arduino Referans Kaynak Kodu:

const int LEDdizisi[] = {2,3,4,5}; void setup () { for(int i=0; i<6 ;i++) { /* For dongusuyle LEDdizisi elemanlarina ulasiyoruz */ pinMode(LEDdizisi[i], OUTPUT); /* LED pinleri cikis olarak ayarlandi */ } } void loop() { for(int i=0; i<6; i++){ /* Tum LEDleri 50 milisaniye yakip sonduruyoruz */ digitalWrite(LEDdizisi[i],HIGH); delay(50); digitalWrite(LEDdizisi[i],LOW); } for(int j=6;j>-1; j--) { /* LEDleri geri yonde 50 milisaniye yakip sonduruyoruz */ digitalWrite(LEDdizisi[j],HIGH); delay(50); digitalWrite(LEDdizisi[j], LOW); } }

14 Ekim 2021 Perşembe

Elektrik-Elektronik Devreler ve Elemanları

 

Sevgili Öğrenciler,


Aşağıdaki konu özetini okuduktan sonra Scratch Kodlama Etkinliğindeki Elektronik Devreyi tamamlayınız.

Devre Eleman kodlarında gerekli değişiklikleri yaparak devreyi güncelleyebilirsiniz.(Örneğin yanan ışığın rengini değiştirme vs.)


BAŞARILAR!




https://scratch.mit.edu/projects/164669

17 Mayıs 2021 Pazartesi

ARDUINO ile 7 segment LED SAYAÇ Projesi

   Sevgili Öğrenciler,

  Arduino robotik setinizdeki 7 segment ledi  kullanarak  0-9 sayıcı yapıyoruz.

Bu projemizde rakamlar gösterilecek ve döngüyle bu süreç tekrar edecek. Devre bağlantısını aşağıdaki referans şemaya göre yapıp kodu yükleyince projemizi tamamlamış olacağız.

 Başarılar!






//Referans Proje Kodu

/* Buradaki kodlar ortak katot bağlantılı 7-segment ekran için geçerlidir.
  7-segment ekranın her bir bölümü için bir değişken tanımladık ve a,b,c,d,e,f,g isimlerini verdik.
  Dijital pin numaralarını tanımladık. */
/* DİKKAT: Deney seti üzerinde bulunan ve 7-Segment Göstergeye ait olan A,B,C,D,E,F,G,N pinleri
  sırasıyla 9,8,7,6,5,4,3,2 nolu dijital pinlere bağlanacaktır. Arduino üzerinde ise bu sıranın tersi
  olacak şekilde, yani 2,3,4,5,6,7,8,9 pin sırasıyla bağlantı yapılmalıdır. Bu farklılık deney seti üzerindeki
  7-segment gösterge bağlantıları ile harici 7-segment göstergenin bağlantılarının birbirinin tersi olmasından
  kaynaklanmaktadır. */


int a = 2;
int b = 3;
int c = 4;
int d = 5;
int e = 6;
int f = 7;
int g = 8;
int n = 9;
void setup() {
  pinMode(a, OUTPUT);
  pinMode(b, OUTPUT);
  pinMode(c, OUTPUT);
  pinMode(d, OUTPUT);
  pinMode(e, OUTPUT);
  pinMode(f, OUTPUT);
  pinMode(g, OUTPUT);
  pinMode(n, OUTPUT);
}
void loop() {
  digitalWrite(a, HIGH); //7 segment ekrana "0" yazdırdık.
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, LOW);
  delay(1000);
  digitalWrite(a, LOW); //7 segment ekrana "1" yazdırdık.
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, LOW);
  delay(1000);
  digitalWrite(a, HIGH); //7 segment ekrana "2" yazdırdık.
  digitalWrite(b, HIGH);
  digitalWrite(c, LOW);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, LOW);
  digitalWrite(g, HIGH);
  delay(1000);
  digitalWrite(a, HIGH); //7 segment ekrana "3" yazdırdık.
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, HIGH);
  delay(1000);
  digitalWrite(a, LOW); //7 segment ekrana "4" yazdırdık.
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  delay(1000);
  digitalWrite(a, HIGH); //7 segment ekrana "5" yazdırdık.
  digitalWrite(b, LOW);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, LOW);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  delay(1000);
  digitalWrite(a, HIGH); //7 segment ekrana "6" yazdırdık.
  digitalWrite(b, LOW);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  delay(1000);
  digitalWrite(a, HIGH); //7 segment ekrana "7" yazdırdık.
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(f, LOW);
  digitalWrite(g, LOW);
  delay(1000);
  digitalWrite(a, HIGH); //7 segment ekrana "8" yazdırdık.
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  delay(1000);
  digitalWrite(a, HIGH); //7 segment ekrana "9" yazdırdık.
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, LOW);
  digitalWrite(f, HIGH);
  digitalWrite(g, HIGH);
  delay(1000);
} // kodlar sonsuz döngü içinde yazıldığı için işlemler başa döner.



22 Mart 2021 Pazartesi

ARDUINO İLE OTOMATİK BARİYER SİSTEMİ

  Sevgili Öğrenciler,

Arduino robotik setinizdeki servo motor ve HC-SR04 ultrasonik sensörünü kullanarak  OTOMATİK BARİYER SİSTEMİ  yapıyoruz.

Bu projemizde servo motorun data kablosunu pin7 ; ultrasonik sensörün de Trig pin 9 ve Echo pin 8 olarak kodda da belirtildiği üzere yapıyoruz.

Projenizle oyuncak maket arabalarla demo yapabilir, sistemi test edebilirsiniz.

Başarılar!





14 Mart 2021 Pazar

Animasyonlu F1 Stop-Aydınlatma İkaz Projesi

  Sevgili Öğrenciler,

Arduino robotik setinizle aşağıdaki devre şemasını kurup kodları da Arduino programında yazarak  Animasyonlu F1 Stop-Aydınlatma İkaz Projesi yapalım.

Bu projemizde 5 LED kullanarak bunların tıpkı Trafik Lambası projesindeki gibi devre kurulumunu yapıyor; 7-8-9-10 ve 11 nolu pinleri ledlerin (+) kutbuna bağlıyoruz.

Ledlerin GND yani (-)kutbu ortak bağlantısını da yapıp kodu yüklersek projemiz çalışacaktır. Arduino kütüphane hatası alırsanız ilgili kütüphanenin zip dosyasını internetten bularak ARDUINO TASLAK sekmesinden library ekle>zip kitaplığı ekle kısmından yükleyebilirsiniz.

Başarılar! 

7-8-9-10-11 no.lu Pinler





//Referans Proje Kodu:


#include <Arduino.h>
#include <Wire.h>
#include <SoftwareSerial.h>

double angle_rad = PI/180.0;
double angle_deg = 180.0/PI;

void setup(){
   
    pinMode(7,OUTPUT);
    pinMode(8,OUTPUT);
    pinMode(9,OUTPUT);
    pinMode(10,OUTPUT);
    pinMode(11,OUTPUT);
  
}

void loop(){
    for(int __i__=0;__i__<3;++__i__)
    {
        for(int __i__=0;__i__<10;++__i__)
        {
           
            digitalWrite(7,0);
            digitalWrite(8,0);
            digitalWrite(9,0);
            digitalWrite(10,0);
            digitalWrite(11,0);
            _delay(0.05);
          
            digitalWrite(7,1);
            digitalWrite(8,1);
            digitalWrite(9,1);
            digitalWrite(10,1);
            digitalWrite(11,1);
            _delay(0.05);
        }
        for(int __i__=0;__i__<3;++__i__)
        {
      
            digitalWrite(7,0);
            digitalWrite(8,0);
            digitalWrite(9,0);
            digitalWrite(10,0);
            digitalWrite(11,0);
     
            _delay(0.5);
         
            digitalWrite(7,1);
            digitalWrite(8,1);
            digitalWrite(9,1);
            digitalWrite(10,1);
            digitalWrite(11,1);
            _delay(0.5);
        }
    }
    _delay(3);
    for(int __i__=0;__i__<4;++__i__)
    {
    
        _delay(0.03);
        digitalWrite(11,1);
        _delay(0.03);
        digitalWrite(10,1);
        _delay(0.03);
        digitalWrite(9,1);
        _delay(0.03);
        digitalWrite(8,1);
        _delay(0.03);
        digitalWrite(7,1);
        _delay(0.03);

        digitalWrite(7,0);
        digitalWrite(8,0);
        digitalWrite(9,0);
        digitalWrite(10,0);
        digitalWrite(11,0);

        _delay(0.3);
  
        digitalWrite(7,1);
        _delay(0.03);
        digitalWrite(8,1);
        _delay(0.03);
        digitalWrite(9,1);
        _delay(0.03);
        digitalWrite(10,1);
        _delay(0.03);
        digitalWrite(11,1);
    
        _delay(0.3);

        digitalWrite(7,0);
        digitalWrite(8,0);
        digitalWrite(9,0);
        digitalWrite(10,0);
        digitalWrite(11,0);
  
    }
    for(int __i__=0;__i__<3;++__i__)
    {

        digitalWrite(7,1);
        _delay(0.2);
        digitalWrite(7,0);
        digitalWrite(8,1);
        _delay(0.2);
        digitalWrite(8,0);
        digitalWrite(9,1);
        _delay(0.2);
        digitalWrite(9,0);
        digitalWrite(10,1);
        _delay(0.2);
        digitalWrite(10,0);
        digitalWrite(11,1);
        _delay(0.2);
        digitalWrite(11,0);
 
        digitalWrite(11,1);
        _delay(0.2);
        digitalWrite(11,0);
        digitalWrite(10,1);
        _delay(0.2);
        digitalWrite(10,0);
        digitalWrite(9,1);
        _delay(0.2);
        digitalWrite(9,0);
        digitalWrite(8,1);
        _delay(0.2);
        digitalWrite(8,0);
        digitalWrite(7,1);
        _delay(0.2);
        digitalWrite(7,0);
          _delay(0.2);
    }
    _loop();
}

void _delay(float seconds){
    long endTime = millis() + seconds * 1000;
    while(millis() < endTime)_loop();
}

void _loop(){
}
  





7 Mart 2021 Pazar

Seri Port ile LEDLERİ Kontrol Ediyoruz.

 Sevgili Öğrenciler,

Arduino robotik setinizle aşağıdaki devre şemasını kurup kodları da Arduino programında yazarak  SERİ PORT ile LEDLERİN Kontrolünü yapıyoruz.

Bu projemizde 3 farklı renkte LED kullanarak bunların birinin renginin ingilizcesini seri portta komut olarak yazarak LEDİ yakıyoruz. 4 pinli RGB lediniz mevcutsa benzer şekilde bağlantıları revize edebilirsiniz.

Başarılar!







17 Ocak 2021 Pazar

LM35 Sıcaklık sensörü ile LED Kontrolü Projesi

 

Sevgili Öğrenciler,

Arduino robotik setinizle aşağıdaki devre şemasını kurup kodları da Arduino programında yazarak  LM35 Sensör  yardımıyla  basit bir "Oda Sıcaklık Termostatı Projesi " yapıyoruz.

Bu projemizde sıcaklık sensörünü kullanarak ortamdaki sıcaklığı ölçüp, belirli bir seviyenin üzerine çıktığında farklı renkte led yakacağız.

Örneğin sıcaklık, ideal kabul edilen bir oda sıcaklığı değerinde iken yeşil yansın; sıcaklık daha da artınca kırmızı yansın.

Başarılar!



Referans Arduino kodu:




11 Ocak 2021 Pazartesi

LM35 Sensör ile Sıcaklık ALARMI

 

Sevgili Öğrenciler,

Arduino robotik setinizle aşağıdaki devre şemasını kurup kodları da Arduino programında yazarak  LM35 Sensör  yardımıyla  "Sıcaklık Alarmı Projesi " yapıyoruz.

Bu projemizde sıcaklık sensörünü kullanarak ortamdaki sıcaklığı ölçüp, belirli bir seviyenin üzerine çıktığında alarm vermesini sağlayacağız.

Başarılar!


//Referans Proje Kodu:


int lm35Pin = A0;

int led = 8;

#define buzzer 9

int zaman = 50;

int okunan_deger = 0;

float sicaklik_gerilim = 0;

float sicaklik = 0;


void setup() 

{

   pinMode(led,OUTPUT);

  pinMode(buzzer,OUTPUT);

  Serial.begin(9600);

}

 void loop()

{

  okunan_deger = analogRead(lm35Pin);

  sicaklik_gerilim = (okunan_deger / 1023.0)*5000;

  sicaklik = sicaklik_gerilim /10.0; 

  Serial.println(sicaklik);

  

  if(sicaklik >= 24){

    digitalWrite(led,HIGH);

    digitalWrite(buzzer,HIGH);

    delay(zaman);

    digitalWrite(led,LOW);

    digitalWrite(buzzer,LOW);

    delay(zaman);

  }

  else{

    digitalWrite(led,LOW);

    digitalWrite(buzzer,LOW);

          }

}




3 Ocak 2021 Pazar

Termometre Projesi ( LM35 Sensör ile )

 

Sevgili Öğrenciler,

Arduino robotik setinizle aşağıdaki devre şemasını kurup kodları da Arduino programında yazarak  LM35 Sensör  yardımıyla  "Termometre Projesi " yapıyoruz.

Projeyi başarıyla tamamlayınca Arduino seriporttan sıcaklık değerini okuyabileceğiz.

Başarılar!