رباتیک و هوافضا

رای گیری الکترونیکی با آردوینو

رای گیری الکترونیکی با آردوینو

به نام خدا

 

رای گیری الکترونیکی با آردوینو

 

رای گیری الکترونیکی با آردوینو

 

در این پروژه جالب ما قصد داریم با استفاده از آردوینو و چند میکرو سوئیچ یک سیستم رای گیری الکترونیکی پیاده سازی کنیم که از آن می توان در جا های مختلفی استفاده کرد. شیوه کار بسیار ساده است و کافی ست تا افراد بر روی میکرو سوئیچ ها بزنند تا نتیجه ی رای گیری بر روی ال سی دی نمایان شود

 

 

قطعات لازم برای پروژه ی رای گیری الکترونیکی با آردوینو

آردوینو یونو

ال سی دی ۱۶×۲

میکروسوئیچ

بردبورد

منبع تغذیه

سیم برد بورد

شماتیک مدار

در این پروژه برای رای گیری از یک میکروسوئیچ استفاده شده ست. ما به راحتی میتوانیم اعضای رای گیری را افزایش دهیم اما برای کاهش دادن بهتر است تا از چهار عضو کمتر نشود. هنگامی که فردی میکروسوئیچی را فشار دهد ارزش رایی که داده است یک واحد افزایش می یابد. بعد از اینکه رای گیری به پایان رسید برای نمایان شدن نتیجه ی رای گیری کافی ست که میکروسوئیچ نتیجه را فشار دهید. هنگامی که اینکار انجام شد ، آردوینو شروع به محاسبه ی نتیجه می کند و آن را بر روی ال سی دی نمایش می دهد.

بیشتر بخوانید...  تایپ صحبت بر روی ال سی دی با استفاده از رزبری پای و نرم افزار اندروید

رای گیری الکترونیکی با آردوینو

مدار این پروژه بسیار ساده است که شامل آردوینو ، میکرو سوئیچ و ال سی ست. تمام پروسه از جمله دریافت سیگنال از میکرو سوئیچ ها افزایش تعداد رای زیر نظر آردوینو ست. در اینجا ما پنج میکروسوئیچ داریم که هرکدام وظیفه ی افزایش ارزش رای  ، ارسال نتیجه و نمایش آن و … را دارا می باشند.  ۵ میکروسوئیچ به طور مستقیم به پین های ۱۵ تا ۱۹ آردوینو متصل شده اند. ال سی دی نیز در مود ۴ بیت به آردوینو متصل شده است.

رای گیری الکترونیکی با آردوینو

کد پروژه :

دانلود فایل
#include<LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

#define sw1 15
#define sw2 16
#define sw3 17
#define sw4 18
#define sw5 19
int vote1=0;
int vote2=0;
int vote3=0;
int vote4=0;
void setup()
{
  pinMode(sw1, INPUT);
  pinMode(sw2,INPUT);
  pinMode(sw3,INPUT);
  pinMode(sw4,INPUT);
  pinMode(sw5,INPUT);
  lcd.begin(16, 2);
  lcd.print("Voting Machine");
  lcd.setCursor(0,1);
  lcd.print("Circuit Digest");
  delay(3000);
  digitalWrite(sw1, HIGH);
  digitalWrite(sw2, HIGH);
  digitalWrite(sw3, HIGH);
  digitalWrite(sw4, HIGH);
  digitalWrite(sw5, HIGH);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("BJP");
  lcd.setCursor(4,0);
  lcd.print("INC");
  lcd.setCursor(8,0);
  lcd.print("AAP");
  lcd.setCursor(12,0);
  lcd.print("OTH");
}
void loop()
{
  lcd.setCursor(0,0);
  lcd.print("BJP");
  lcd.setCursor(1,1);
  lcd.print(vote1);
  lcd.setCursor(4,0);
  lcd.print("INC");
  lcd.setCursor(5,1);
  lcd.print(vote2);
  lcd.setCursor(8,0);
  lcd.print("AAP");
   lcd.setCursor(9,1);
  lcd.print(vote3);
  lcd.setCursor(12,0);
  lcd.print("OTH"); 
  lcd.setCursor(13,1);
  lcd.print(vote4);
  if(digitalRead(sw1)==0)
    vote1++;
    while(digitalRead(sw1)==0);
  if(digitalRead(sw2)==0)
    vote2++;
    while(digitalRead(sw2)==0);
  if(digitalRead(sw3)==0)
    vote3++;
    while(digitalRead(sw3)==0);
   if(digitalRead(sw4)==0)
    vote4++;
    while(digitalRead(sw4)==0);
   if(digitalRead(sw5)==0)
   {
     int vote=vote1+vote2+vote3+vote4;
     if(vote)
     {
      if((vote1 > vote2 && vote1 > vote3 && vote1 > vote4))
      {
       lcd.clear();
       lcd.print("BJP Wins");
       delay(2000);
       lcd.clear();
      }
      else if((vote2 > vote1 && vote2 > vote3 && vote2 > vote4))
      {
       lcd.clear();
       lcd.print("INC Wins");
       delay(2000);
       lcd.clear();
      }
      else if((vote3 > vote1 && vote3 > vote2 && vote3 > vote4))
      {
       lcd.clear();
       lcd.print("AAP Wins");
       delay(2000);
       lcd.clear();
      }
     else if(vote4 > vote1 && vote4 > vote2 && vote4 > vote3)
     {
       lcd.setCursor(0,0);
       lcd.clear();
       lcd.print("OTH Wins");
       delay(2000);
       lcd.clear();
     }
     
      else if(vote4 > vote1 && vote4 > vote2 && vote4 > vote3)
     {
       lcd.setCursor(0,0);
       lcd.clear();
       lcd.print("OTH Wins");
       delay(2000);
       lcd.clear();
     }
     
     else
     {
       lcd.clear();
       lcd.print("   Tie Up Or   ");
       lcd.setCursor(0,1);
       lcd.print("   No Result   ");
       delay(1000);
       lcd.clear();
     }
     
    }      
     else 
     {
       lcd.clear();
       lcd.print("No Voting....");
       delay(1000);
       lcd.clear();
     }
     vote1=0;vote2=0;vote3=0;vote4=0,vote=0;
     lcd.clear();
   }
   
}

 

بیشتر بخوانید...  آموزش کنترل ماژول دات ماتریس 8*8 با استفاده از رزبری پای

دیدگاه‌ها (0)

*
*