dominoFiber     domiRobot     Forum


Projeler - 1Sheeld Geri sayım Sayacı

1Sheeld Geri sayım Sayacı
Bu projemizde 1Sheeld GLCD uygulaması ile 24 saate kadar geri sayım işlemi yapacağız. Geri sayım işleminin tamamlanmasıyla beraber android cihazınız sesli ve titreşimli uyarı vererek kullanıcıyı bilgilendirmektedir.

Amaç
1Sheeld ile geri sayım sayacı uygulamasını yapabilme becerisi kazanmak.

Seviye
Orta seviye

<a href="http://www.youtube.com/watch?v=J3TnS1haTr4" target="_blank">http://www.youtube.com/watch?v=J3TnS1haTr4</a>
Video 1: 1Sheeeld geri sayım uygulaması

Fotoğraf 1: 1Sheeeld geri sayım uygulaması

Fotoğraf 2: Uploading mode

Fotoğraf 3: Operating mode

İşlem basamakları
  • Bu uygulamada arduino, cep telefonu ve 1sheeld haricinde ayrıca bir modül ya da kompenente ihtiyaç yoktur.
  • 1Sheeld uygulamasını android cihazınıza kurunuz.
  • 1sheeld kütüphanesini ekleyiniz.
  • Uygulamaya ait kodlamayı arduinoya yükleyiniz. Yükleme yaparken 1sheeld üzerindeki swich uploading mode konumunda olmaldır.​
  • 1Sheeld pinlerini arduinonun header pinlerine geçiriniz.
  • 1sheeld üzerindeki swichi operating mode konumuna alınız.
  • Devreye besleme gerilimi uygulayınız.
  • 1Sheeld üzerindeki led flash yapacaktır.
  • 1sheeld ile android cihaz arasında bluetooth bağlantısını kurunuz. (şifre 1234)
  • Bağlantı sağlandığında 1sheeld üzerindeki led devamlı yanacaktır.​
  • Video 1'de görüldüğü gibi buzzer, GLCD ve vibration uygulamalarını başlatınız.
  • GLCD ekranını açınız.
  • Arduino resetleyiniz.
  • Cihazınızdan video 1'de görüldüğü gibi geri sayımı başlatınız.
  • Geri sayım işlemini takip ederek sonucunu gözlemleyiniz.

1sheeld geri sayım sayacı arduino kodları
Kod: [Seç]
/*

This project uses a GLCD shiled of the one shiled to creat a count down counter using a smartphone and arduino with 1sheeld.
*/

#define CUSTOM_SETTINGS
#define INCLUDE_GLCD_SHIELD
#define INCLUDE_BUZZER_SHIELD
#define INCLUDE_VIBRATION_SHIELD

/* Include 1Sheeld library. */
#include <OneSheeld.h>


/* GLCD Setup */

GLCDRectangle border1(0,0,255,127);
GLCDRectangle border2(2,2,251,123);

/* The  Buttons.*/
GLCDButton  startButton(37,87,97,122,"Start");
GLCDButton  hm(77,4,94,21,"+")  ;
GLCDButton  hl(77,66,94,83,"-") ;
GLCDButton  mm(119,4,136,21,"+");
GLCDButton  ml(119,66,136,83,"-");
GLCDButton  sm(162,4,179,21,"+");
GLCDButton  sl(162,66,179,83,"-");
/*Text boxs */
GLCDTextBox hourTextbox(75,30,"0");
GLCDTextBox minutesTextbox(120,30,"0");
GLCDTextBox secondsTextbox(165,30,"0");

int hours=0,minutes=0,second=0;
int hour_counter,minutes_counter,second_counter;
bool countDownState=false;

void setup() {

/* Start communication with 1Sheeld. */
  OneSheeld.begin();
/* Clear the GLCD. */
  GLCD.clear();
 
/* Draw all shaps. */
  GLCD.draw(border1);
  GLCD.draw(border2);
  GLCD.draw(startButton);
  GLCD.draw(hm);
  GLCD.draw(hl);
  GLCD.draw(mm);
  GLCD.draw(ml);
  GLCD.draw(sm);
  GLCD.draw(sl);
  GLCD.draw(hourTextbox);
  GLCD.draw(minutesTextbox);
  GLCD.draw(secondsTextbox);

/* Change the styles of the buttons to 3D. */
  startButton.setStyle(STYLE_3D);
  hm.setStyle(STYLE_3D);
  hl.setStyle(STYLE_3D);
  mm.setStyle(STYLE_3D);
  ml.setStyle(STYLE_3D);
  sm.setStyle(STYLE_3D);
  sl.setStyle(STYLE_3D);
 
/* Set the button dimensions. */
startButton.setDimensions(64,30);
hm.setDimensions(32,17);
hl.setDimensions(32,17);
mm.setDimensions(32,17);
ml.setDimensions(32,17);
sm.setDimensions(32,17);
sl.setDimensions(32,17);

/* set the size of the numbers*/
 hourTextbox.setSize(MEDIUM);
 minutesTextbox.setSize(MEDIUM);
 secondsTextbox.setSize(MEDIUM);
 
/* Set the button handlers. */
 
 
}

void setButtonTasks()
{
  hm.setOnChange(&hmtask);
  hl.setOnChange(&hltask);
  mm.setOnChange(&mmtask);
  ml.setOnChange(&mltask);
  sm.setOnChange(&smtask);
  sl.setOnChange(&sltask);
  startButton.setOnChange(&startButtontask);
 
}

/*Increase the hourse */
void hmtask(bool state)
{
  if (state){
  hours++;
  if (hours>23)
  {
  hours=0;
  }

/* converting from interger to char array as setText just take char array*/
  char charArray[4];
  String(hours).toCharArray(charArray,4);
  hourTextbox.setText(charArray);
}

//decrease hours
}
void hltask(bool state)
{
  if (state){
  hours--;
  if (hours<0)
  {
  hours=23;
  }
/* converting from interger to char array as setText just take char array*/
  char charArray[4];
  String(hours).toCharArray(charArray,4);
  hourTextbox.setText(charArray);
  }
}

/*Increase the minutes */
void mmtask(bool state)
{
  if (state){
  minutes++;
  if (minutes>59)
  {
  minutes=0;
  }
  /* converting from interger to char array as setText just take char array*/
  char charArray[4];
  String(minutes).toCharArray(charArray,4);
  minutesTextbox.setText(charArray);
}

//decrease minutes
}
void mltask(bool state)
{
  if (state){
  minutes--;
  if (minutes<0)
  {
  minutes=59;
  }
  /* converting from interger to char array as setText just take char array*/
  char charArray[4];
  String(minutes).toCharArray(charArray,4);
  minutesTextbox.setText(charArray);
  }
}

/*Increase the seconds */
void smtask(bool state)
{
  if (state){
  second++;
  if (second>59)
  {
  second=0;
  }
  /* converting from interger to char array as setText just take char array*/
  char charArray[4];
  String(second).toCharArray(charArray,4);
  secondsTextbox.setText(charArray);
}

//decrease seconds
}
void sltask(bool state)
{
  if (state){
  second--;
  if (second<0)
  {
  second=59;
  }
/* converting from interger to char array as setText just take char array*/
  char charArray[4];
  String(second).toCharArray(charArray,4);
  secondsTextbox.setText(charArray);
  }
}

void startButtontask(bool state)
{
   if (state)
  {
      hm.setVisibility(false);
      hl.setVisibility(false);
      mm.setVisibility(false);
      ml.setVisibility(false);
      sm.setVisibility(false);
      sl.setVisibility(false);
      startButton.setVisibility(false);
      hour_counter=hours;
      minutes_counter=minutes;
      second_counter=second;
 
    for ( hour_counter;hour_counter>=0;hour_counter--)
    {
      for (minutes_counter;minutes_counter>=0;minutes_counter--)
      {
        for (second_counter; second_counter>=0;second_counter--)
        {
          char charArray[3];
          String(second_counter).toCharArray(charArray,3);
          secondsTextbox.setText(charArray);
         
         
          String(minutes_counter).toCharArray(charArray,3);
          minutesTextbox.setText(charArray);

         
          String(hour_counter).toCharArray(charArray,3);
          hourTextbox.setText(charArray);
          delay(1000);// delay one second
         
         
        }
        second_counter=59;
      }
      minutes_counter=59;
    }
    /* Vibrate  and buzzer on for 1 second. */
      Buzzer.buzzOn();
      Vibration.start(1000);
      hm.setVisibility(true);
      hl.setVisibility(true);
      mm.setVisibility(true);
      ml.setVisibility(true);
      sm.setVisibility(true);
      sl.setVisibility(true);
      startButton.setVisibility(true);
      Buzzer.buzzOff();
      /* Stop the vibration. */
      Vibration.stop();
     
  }
  hours=0,minutes=0,second=0;
}


/*start button function to countdown */
void loop() {
 
 setButtonTasks();
}

Malzeme listesi
Tüm malzemeleri malzeme isimlerine tıklayarak temin edebilirsiniz.

Download
İhtiyaç duyulması halinde projeye ait dosyaları download bölümünden indirebilirsiniz.
Güncel android uygulamasını buraya tıklayıp indirebilirsiniz.

Akıllı telefonunuzun özelliklerini arduinoya taşıyın

  • 1sheeld satın al1sheeld satın al1sheeld satın al