Bu bölümde, geçen derste de belirttiğimiz gibi fonksiyonlar üzerinden devam edeceğiz ve 2. tip fonksiyonlarımız olan parametre almayan ve değer döndüren fonksiyonları işleyeceğiz. Bu videodan sonra tahminen 2 video daha yaparak fonksiyonlar konusu kapatmış oluruz. Bu video şimdiye kadar çekilen Arduino Tarifleri videolarının genelinden biraz daha zor gelebilir. Çünkü videoda nerede ise bundan önce yayınlanan 20 videodaki tüm komutları kullanıyoruz. Bu sayede konuyu anlamaya çalışırken, geçmişte öğrendiğimiz bilgilerimizi de sınamış olacağız. Eğer videoda işlevini tam anlayamadığınız bir komut olursa biraz geriye dönerek oraya takviye yapabilirsiniz.

Tüm bunları belirttikten sonra artık videoya geçebiliriz. İyi çalışmalar dilerim arkadaşlar, hoşça kalın 🙂

Malzemeler:

1 tane mantar led – Video https://youtu.be/cDnLxLkFBCo
1 tane 220 ohm, 3 tane 10k ohm direnç – Video https://youtu.be/A_cinGnu8FM
2 tane breadbord için push buton ( elektronikte yeni iseniz mutlaka 2 bacaklı olan butonlardan tercih edin)
1 tane Breadbord ve yeteri kadar jumper kablolar – Video https://youtu.be/Q6I3PTM7mGU
1 tane breadbord için 3 bacaklı switch
ve tabii ki Arduino kartınız

DEVRE ŞEMASI

ARDUINO KODU

/*
   Lezzetli Robot Tarifleri
   Arduino Tarifleri -20-
   Fonksiyonlar-2
   VİDEO >>> http://lezzetlirobottarifleri.com/video/arduino-tarifleri-20-fonksiyonlar-2
*/
const int buton1 = 2;
const int buton2 = 3;
const int buton3 = 4;
const int led = 7;

int  arti ;
int  eksi ;
int durum ;
int sayac;
int tur_sayisi;

int fonksiyon2()
{
  durum = digitalRead(buton3);
  while (durum == HIGH)
  {
    arti = digitalRead(buton1);
    eksi = digitalRead(buton2);
    if (arti == HIGH)
    {
      sayac++;
      Serial.println("sayac = ");
      Serial.println(sayac);
      if (arti == HIGH)
      {
        while (1)
        {
          arti = digitalRead(buton1);
          if (arti == LOW)
            break;
        }
      }
    }
    else if (eksi == HIGH)
    {
      sayac--;
      Serial.println("sayac = ");
      Serial.println(sayac);
      if (eksi == HIGH)
      {
        while (1)
        {
          eksi = digitalRead(buton2);
          if (eksi == LOW)
            break;
        }
        durum = digitalRead(buton3);
      }
      return sayac;
    }
  }
}
void setup()
{
  pinMode(buton1 ,  INPUT);
  pinMode(buton2 ,  INPUT);
  pinMode(buton3 ,  INPUT);
  pinMode(led    , OUTPUT);

  Serial.begin(9600);
}

void loop()
{
  tur_sayisi = fonksiyon2();

  for (int i = 0; i < tur_sayisi ; i++)
  {
    digitalWrite(led , HIGH);
    delay(100);
    digitalWrite(led ,  LOW);
    delay(100);
  }
  while (1)
  {
    durum = digitalRead(buton3);
    if (durum == HIGH)
      break;
  }
}