30 Ocak 2016 Cumartesi

Led Karaşimşek :)

Kızım ve oğlum Ardiuno ile tanıştı :)




Kod:

int timer = 100;
int ledPins[] = {
  2, 3, 4, 5, 6, 7
};
int pinCount = 6;


void setup() {
  for (int thisPins = 0; thisPins < pinCount; thisPins++) {
    pinMode(ledPins[thisPins], OUTPUT);
  }
}


void loop() {
  for (int thisPin = 0; thisPin < pinCount; thisPin++) {
    digitalWrite(ledPins[thisPin], HIGH);
    delay(timer);
    digitalWrite(ledPins[thisPin], LOW);
  }
  for (int thisPin = pinCount - 1; thisPin >= 0; thisPin--) {
    digitalWrite(ledPins[thisPin], HIGH);
    delay(timer);
    digitalWrite(ledPins[thisPin], LOW);
  }
}

29 Ocak 2016 Cuma

7 Segment Display..Çok basit.. Meğerse anode muş...


7 Segment Display ne kadar zor olabilir ki :)

Ama masum köylü internetten baktığı bütün örneklerin katod segment için olduğunu ancak gece saat 1 de öğrenir :)

Ben çektim siz çekmeyin işte 7 Segment Display Anode için şema, kod ve resimler sizler için: 


Kod : 

const int G = 8;  // G segment = Arduino pin 8
const int F = 7;  // F segment = Arduino pin 7
const int A = 2;  // A segment = Arduino pin 2
const int B = 3;  // B segment = Arduino pin 3
const int E = 6;  // E segment = Arduino pin 6
const int D = 5;  // D segment = Arduino pin 5
const int C = 4;  // C segment = Arduino pin 4
const int dp = 9; // decimal point (dp) segment = Arduino pin 9

const int second = 1000; // In a millisecond timer, 1000 milliseconds = 1 second

const int digit = 10;   // Number of digits to display 10 digits (0 - 9)
const int segment = 7;  // Number of segments in the LED (7)

// Array defining which LED segments to light up
// for a given number defined by position in the array
byte digseg[digit][segment] =  {
  { 0, 0, 0, 0, 0, 0, 1 }, // = 0
  { 1, 0, 0, 1, 1, 1, 1 }, // = 1
  { 0, 0, 1, 0, 0, 1, 0 }, // = 2
  { 0, 0, 0, 0, 1, 1, 0 }, // = 3
  { 1, 0, 0, 1, 1, 0, 0 }, // = 4
  { 0, 1, 0, 0, 1, 0, 0 }, // = 5
  { 0, 1, 0, 0, 0, 0, 0 }, // = 6
  { 0, 0, 0, 1, 1, 1, 1 }, // = 7
  { 0, 0, 0, 0, 0, 0, 0 }, // = 8
  { 0, 0, 0, 1, 1, 0, 0 } // = 9
};

void setup() {
  // Set all pins to OUTPUT
  pinMode(A, OUTPUT);
  pinMode(B, OUTPUT);
  pinMode(C, OUTPUT);
  pinMode(D, OUTPUT);
  pinMode(E, OUTPUT);
  pinMode(F, OUTPUT);
  pinMode(G, OUTPUT);
  pinMode(dp, OUTPUT);

  // Turn decimal point off by writing LOW
  digitalWrite(dp, LOW);
}

// Loop through all 7 LED segments starting with pin 2
void writeDigit(byte digit)
{
  byte pin = 2;
  byte seg;

  for (seg = 0; seg < 7; seg++)
  {
    digitalWrite(pin, digseg[digit][seg]);
    pin++;
  }
}

// Loop through all 10 digits starting with 0 ending with 9
// with appropriate delays
void loop()
{
  byte digit;

  for (digit = 0; digit < 10; digit++)
  {
    writeDigit(digit);
    delay(second);
  }
  delay(4 * second);

}

Son Resim : 


16x2 LCD ekran ile imtihan... vee Park Sensörü



Bir gece boyunca internetten araştırarak önce 1 ve 2. satırlara merhaba yazmak ile geçti. 
Her yerde ekrana potansiyometre bağlamışlar bir anlam verememiştim ben de bağlamamıştım :)
Meğerse potans ile ekran parlaklığını ayarlıyormuşuz :)

Hızımızı alamayıp ertesi gün PARK SENSÖRÜ yapmışız...

Aynı zamanda fritzing i keşfettik :)

Buyurun size Şema, Resimler ve kod :)
Şemayı elimdeki 16x2 lcd yi breadborda taktığım pinlere göre yaptım. İnternetteki resimler direk componentin bacaklarını işret etmiş. Sağ sola çevirmekten beynim bitti.
Ben de aşağıdaki gibi pinleri breadboarda referans edecek şekilde çizdim.


Kodlar : 

#include <LiquidCrystal.h> //Load Liquid Crystal Library

#define trigPin 3 //Sensörün Echo pini Arduinonun 13. pinine bağlanır
#define echoPin 2 //Sensorün Trig pini Arduinonun 12. pinine bağlanır
#define buzzer 4 //hoparlör 4. pinde
#define LCD_LIGHT_PIN 6 // LCD arka ışığı pini

LiquidCrystal lcd(7, 8, 9, 10, 11 , 12);

void setup() {
  pinMode(trigPin, OUTPUT); //3. yani trigpini çıkış olarak ayarlıyoruz
  pinMode(echoPin, INPUT); //2. pin echo input ayarlanır
  pinMode(LCD_LIGHT_PIN, OUTPUT);     // LCD Arka Işığı
  digitalWrite(LCD_LIGHT_PIN, HIGH); //LCD ışığını yak

  // LCD Başlangıç ayarları
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);        // 1.satır
  lcd.print("MESAFE"); // 1.satır metin
  lcd.setCursor(0, 1);        // 2.satır
  lcd.print("0");       // 2.satır metin
  lcd.display();    // LCD Ekranı Göster
}

void loop() {
  long duration, distance;
  //mesafe ölçmek için sensöre başlangıç komutları göndeilir.
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration / 58.3;

  lcd.setCursor(0, 1); //Kursoru ikinci satır birinci sütuna getiriyoruz
  lcd.print("                "); //Ekranı temizlemek için 16 boşluk yazdırıyoruz.
  lcd.setCursor(0, 1); //Kursoru tekrardan ikinci satır birinci sütuna getiriyoruz
  lcd.print("Mesafe ");
  lcd.setCursor(7, 1); //satırın başında mesafe yazdığı için kursoru 7. sütuna götörüyoruz
  lcd.print(String(distance) + " cm"); //Ölçülen mesafeyi yazdırıyoruz

  if (distance >= 15 && distance < 25) {
    tone(buzzer, 200000, 200);
    delay(300);
  }
  if (distance >= 10 && distance < 15) {
    tone(buzzer, 200000, 200);
    delay(100);
  }

  if (distance >= 5  && distance < 10  ) {
    tone(buzzer, 200000, 50);
    delay(50);
  }

  if (distance < 5  ) {
    tone(buzzer, 200000);
  }
  if (distance > 25  ) {
    noTone(buzzer);
  }
  delay(250); //250 milisaniye bekletiyoruz.

}


Son Resim:


Tüketen değil üreten çocuklar


Tüketen değil üreten çocuklar yetiştirmek, biraz da eğlenmek için maceramıza www.robotistan.com dan aşağıdakileri satın alma ile başladık.

  • Arduino Süper Başlangıç Seti Rev3 - Kitapsız - (Klon)
  • Arduino UNO R3 Klon - USB Kablo Hediyeli - (USB Chip CH340)
  • Breadboard
  • HC-SR501 Ayarlanabilir IR Hareket Algılama Sensörü - PIR
  • HC-SR04 Ultrasonik Mesafe Sensörü
  • 10mm LDR (Işık sensörü)


Toplam 153 tl tuttu. :) 150 üzeri kargo ücretsiz :)

İlk gün tabii ki led yakmak oldu :)

Onu da kara şimşek ışıkları takip etti :)

Ardından da potansiyometre ile ışıkları sıra ile yakıp söndürme :)

Final kod aşağıdaki gibi gözüktü:

const int analogPin = A0; //potans giriş ayağı
const int ledCount = 6; //led sayısı
int ledPins[] = {
  2, 3, 4, 5, 6, 7 //ledlerin bağlı olduğu pinler
};

void setup() {
  for (int thisPin = 0; thisPin < ledCount; thisPin++) {
    pinMode(ledPins[thisPin], OUTPUT); //led pinlerini output olarak ayarla
  }
}

void loop() {
  int sensorReading = analogRead(analogPin);

  //potans dan gelen değeri 0 ila 6 arasında ayarla.
  int ledLevel = map(sensorReading, 0, 1023, 0, ledCount); 

  //potans değerine göre ışıkları yak ya da södür.
  for (int thisPin = 0; thisPin < ledCount; thisPin++)
  {
    if (thisPin < ledLevel) {
      digitalWrite(ledPins[thisPin], HIGH);
    } else {
      digitalWrite(ledPins[thisPin], LOW);
    }
  }

}

İlk gün böyle geçti :)

Hello Arduino!

Hello Arduino!
Bu blogda sizlere Ardiuno ile yaptıklarımızı paylaşmak istiyorum.
Haydi başlayalım.