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);
  }
 }

//