جستجو برای:
سبد خرید 0
  • خانه
  • فروشگاه
    • دوره های آموزشی
    • پروژه
    • بسته های آموزشی
      • رباتیک
      • آردوینو
  • هوافضا
    • آموزش هوافضا
      • فیلم های آموزش هوافضا
      • PDF های آموزش هوافضا
    • محصولات هوافضایی
    • نرم افزار های هوافضا
    • تازه های هوافضا
  • رباتیک
    • آموزش رباتیک
      • فیلم های آموزش رباتیک
        • PDF های آموزش رباتیک
    • دیتاشیت فارسی
    • نرم افزار های رباتیک
    • تازه های رباتیک
    • تاریخ مسابقات
  • پروژه
    • پروژه های رایگان
    • پروژه های آماده
    • پروژه های آردوینو
    • پروژه های رزبری پای
    • پروژه های بدون میکروکنترلر
    • پردازش تصویر
    • سفارش پروژه
  • دوره های آموزشی
    • کلاس های آموزشی
    • فیلم های آموزشی
    • جلسه های آموزشی
      • آموزش آردوینو
      • آموزش رسپبری پای
      • آموزش STM32
      • ربات پرنده
      • رباتیک مقدماتی
  • تماس با ما
  • درباره ما
  • مقالات
شروع ثبت نام دوره تابستانی آوات روبو
فرصت تکرار نشدنی ثبت نام در دوره های حضوری با 20% تخفیف!
ساعت
دقیقه
ثانیه
مشاهده دوره های آموزشی
رباتیک و هوافضا
ورود
با ایمیل با شماره موبایل
گذرواژه خود را فراموش کرده اید؟
عضویت
با ایمیل با شماره موبایل
  • 09152556924
  • sup@avatrobo.ir
رباتیک و هوافضا
  • خانه
  • فروشگاه
    • دوره های آموزشی
    • پروژه
    • بسته های آموزشی
      • رباتیک
      • آردوینو
  • هوافضا
    • آموزش هوافضا
      • فیلم های آموزش هوافضا
      • PDF های آموزش هوافضا
    • محصولات هوافضایی
    • نرم افزار های هوافضا
    • تازه های هوافضا
  • رباتیک
    • آموزش رباتیک
      • فیلم های آموزش رباتیک
        • PDF های آموزش رباتیک
    • دیتاشیت فارسی
    • نرم افزار های رباتیک
    • تازه های رباتیک
    • تاریخ مسابقات
  • پروژه
    • پروژه های رایگان
    • پروژه های آماده
    • پروژه های آردوینو
    • پروژه های رزبری پای
    • پروژه های بدون میکروکنترلر
    • پردازش تصویر
    • سفارش پروژه
  • دوره های آموزشی
    • کلاس های آموزشی
    • فیلم های آموزشی
    • جلسه های آموزشی
      • آموزش آردوینو
      • آموزش رسپبری پای
      • آموزش STM32
      • ربات پرنده
      • رباتیک مقدماتی
  • تماس با ما
  • درباره ما
  • مقالات
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0

وبلاگ

رباتیک و هوافضا > مقالات > پروژه > پروژه ی ساخت سیستم رای گیری الکترونیکی با استفاده از آردوینو و ماژول کارت حافظه

پروژه ی ساخت سیستم رای گیری الکترونیکی با استفاده از آردوینو و ماژول کارت حافظه

خرداد 10, 1397
ارسال شده توسط mjavad
پروژه، پروژه های آردوینو، پروژه های رایگان

به نام خدا

پروژه ی ساخت سیستم رای گیری الکترونیکی با استفاده از آردوینو و ماژول کارت حافظه

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

 

 

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

 

 

 

 

شماتیک مدار:

اتصالات ال سی دی:

 

 

برای توضیح بهتر مدار آن را به دو قسمت تبدیل کرده ایم. در تصویر بالا اتصالات ال سی دی را مشاهده می کنید. از یک پتانسیومتر برای تنظیم کنتراست ال سی دی استفاده شده است.

 

 

در تصویر بالا قسمت دوم مدار را مشاهده می کنید. منبع تغذیه ی مدار یک باطری 9 ولتی ست .هنگامی که رای گیری به پایان رسید می توانید کارت حافظه را به کامپیوتر متصل کنید تا نتیجه ی رای گیری را مشاهده کنید. این سیستم می تواند تعداد بیش از 4 میلیارد رای  را برای هر یک از کاندید ها بشمارد! سیستم های رای گیری واقعی فقط 3840 رای را می توانند در خود جای دهند.

 

کد برنامه سیستم رای گیری الکترونیکی با استفاده از آردوینو :

[maxbutton id=”241″ url=”http://avatrobo.ir/wp-content/uploads/2018/05/EVM.txt” ]

#include <SPI.h>
#include <SD.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
//----------------------------------------------------//
String Party1 = "MODI";
String Party2 = "TRUMP";
String Party3 = "PUTIN";                  // Place the Candidate Names Here.
String Party4 = "Abdul Kalam";
String Party5 = "Girish";
String Party6 = "Swagatam";
//-----------------------------------------------------//
const int btn_1 = A0;
const int btn_2 = A1;
const int btn_3 = A2;
const int btn_4 = A3;
const int btn_5 = A4;
const int btn_6 = A5;
const int ctrl_btn = 8;
const int cs = 10;
const int LED = 9;
boolean ballot = false;
File Party1File;
File Party2File;
File Party3File;
File Party4File;
File Party5File;
File Party6File;
unsigned long int Party1_Count = 0;
unsigned long int Party2_Count = 0;
unsigned long int Party3_Count = 0;
unsigned long int Party4_Count = 0;
unsigned long int Party5_Count = 0;
unsigned long int Party6_Count = 0;
void setup()
{
pinMode(btn_1,INPUT);
pinMode(btn_2,INPUT);
pinMode(btn_3,INPUT);
pinMode(btn_4,INPUT);
pinMode(btn_5,INPUT);
pinMode(btn_6,INPUT);
pinMode(ctrl_btn,INPUT);
pinMode(cs,OUTPUT);
pinMode(LED,OUTPUT);
digitalWrite(btn_1,HIGH);
digitalWrite(btn_2,HIGH);
digitalWrite(btn_3,HIGH);
digitalWrite(btn_4,HIGH);
digitalWrite(btn_5,HIGH);
digitalWrite(btn_6,HIGH);
digitalWrite(ctrl_btn,HIGH);
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("   Electronic");
lcd.setCursor(0,1);
lcd.print(" Voting Machine");
delay(2000);
if (!SD.begin(cs))
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("SD Card failed");
lcd.setCursor(0,1);
lcd.print("or not present");
while(true)
{
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
delay(100);
}
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Machine Status:");
lcd.setCursor(0,1);
lcd.print("Initialized !!!");
digitalWrite(LED,HIGH);
delay(2000);
digitalWrite(LED,LOW);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Machine is ready");
lcd.setCursor(0,1);
lcd.print("----------------");
while(!ballot)
{
if(digitalRead(ctrl_btn) == LOW)
{
ballot = true;
for(int y = 0; y < 3; y++)
{
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
delay(100);
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Cast Your Vote");
lcd.setCursor(0,1);
lcd.print("----------------");
}
}
}
void loop()
{
while(ballot)
{
if(digitalRead(btn_1) == LOW)
{
Party_1();
}
if(digitalRead(btn_2) == LOW)
{
Party_2();
}
if(digitalRead(btn_3) == LOW)
{
Party_3();
}
if(digitalRead(btn_4) == LOW)
{
Party_4();
}
if(digitalRead(btn_5) == LOW)
{
Party_5();
}
if(digitalRead(btn_6) == LOW)
{
Party_6();
}
}
}
void Party_1()
{
ballot = false;
SD.remove("Party1.txt");
Party1File = SD.open("Party1.txt", FILE_WRITE);
if(Party1File)
{
Party1_Count = Party1_Count + 1;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("You voted for:");
lcd.setCursor(0,1);
lcd.print(Party1);
Party1File.println("------------------------------------");
Party1File.print("Result for: ");
Party1File.println(Party1);
Party1File.print("------------------------------------");
Party1File.println(" ");
Party1File.print("Number of Votes = ");
Party1File.print(Party1_Count);
Party1File.close();
Tone();
ctrl();
}
else
{
Error();
}
}
void Party_2()
{
ballot = false;
SD.remove("Party2.txt");
Party2File = SD.open("Party2.txt", FILE_WRITE);
if(Party2File)
{
Party2_Count = Party2_Count + 1;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("You voted for:");
lcd.setCursor(0,1);
lcd.print(Party2);
Party2File.println("------------------------------------");
Party2File.print("Result for: ");
Party2File.println(Party2);
Party2File.print("------------------------------------");
Party2File.println(" ");
Party2File.print("Number of Votes = ");
Party2File.print(Party2_Count);
Party2File.close();
Tone();
ctrl();
}
else
{
Error();
}
}

void Party_3()
{
ballot = false;
SD.remove("Party3.txt");
Party3File = SD.open("Party3.txt", FILE_WRITE);
if(Party3File)
{
Party3_Count = Party3_Count + 1;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("You voted for:");
lcd.setCursor(0,1);
lcd.print(Party3);
Party3File.println("------------------------------------");
Party3File.print("Result for: ");
Party3File.println(Party3);
Party3File.print("------------------------------------");
Party3File.println(" ");
Party3File.print("Number of Votes = ");
Party3File.print(Party3_Count);
Party3File.close();
Tone();
ctrl();
}
else
{
Error();
}
}

void Party_4()
{
ballot = false;
SD.remove("Party4.txt");
Party4File = SD.open("Party4.txt", FILE_WRITE);
if(Party4File)
{
Party4_Count = Party4_Count + 1;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("You voted for:");
lcd.setCursor(0,1);
lcd.print(Party4);
Party4File.println("------------------------------------");
Party4File.print("Result for: ");
Party4File.println(Party4);
Party4File.print("------------------------------------");
Party4File.println(" ");
Party4File.print("Number of Votes = ");
Party4File.print(Party4_Count);
Party4File.close();
Tone();
ctrl();
}
else
{
Error();
}
}

void Party_5()
{
ballot = false;
SD.remove("Party5.txt");
Party5File = SD.open("Party5.txt", FILE_WRITE);
if(Party5File)
{
Party5_Count = Party5_Count + 1;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("You voted for:");
lcd.setCursor(0,1);
lcd.print(Party5);
Party5File.println("------------------------------------");
Party5File.print("Result for: ");
Party5File.println(Party5);
Party5File.print("------------------------------------");
Party5File.println(" ");
Party5File.print("Number of Votes = ");
Party5File.print(Party5_Count);
Party5File.close();
Tone();
ctrl();
}
else
{
Error();
}
}

void Party_6()
{
ballot = false;
SD.remove("Party6.txt");
Party6File = SD.open("Party6.txt", FILE_WRITE);
if(Party6File)
{
Party6_Count = Party6_Count + 1;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("You voted for:");
lcd.setCursor(0,1);
lcd.print(Party6);
Party6File.println("------------------------------------");
Party6File.print("Result for: ");
Party6File.println(Party6);
Party6File.print("------------------------------------");
Party6File.println(" ");
Party6File.print("Number of Votes = ");
Party6File.print(Party6_Count);
Party6File.close();
Tone();
ctrl();
}
else
{
Error();
}
}

void Error()
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Unable to log");
lcd.setCursor(0,1);
lcd.print("data to SD card");
for(int x = 0; x < 100 ; x++)
{
digitalWrite(LED, HIGH);
delay(250);
digitalWrite(LED, LOW);
delay(250);
}
}
void Tone()
{

digitalWrite(LED, HIGH);
delay(1000);
digitalWrite(LED, LOW);
delay(1500);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("   Thanks for");
lcd.setCursor(0,1);
lcd.print("   Voting!!!");
delay(1500);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("   Not Ready");
lcd.setCursor(0,1);
lcd.print("----------------");
}
void ctrl()
{
while(!ballot)
{
if(digitalRead(ctrl_btn) == LOW)
{
ballot = true;
for(int y = 0; y < 3; y++)
{
digitalWrite(LED, HIGH);
delay(100);
digitalWrite(LED, LOW);
delay(100);
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Cast Your Vote");
lcd.setCursor(0,1);
lcd.print("----------------");
}
}
}

 

 

 

برای مشاهده ی نتایج رای گیری ، بعد از اتمام رای گیری کارت حافظه را به کامپیوتر خود متصل کندی و در آن شش فایل با فرمت تکست خواهید دید که هر کدام مختص یک کاندید است.

 

با باز کردن فایل ، نام هر کاندید و تعدا رای دریافتی آن را می توانید مشاهده کنید. درست همانند تصویر پایین :

 

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

پست های مرتبط

اردیبهشت 9, 1398

برنامه نویسی به زبان پایتون برای رزبری پای

mjavad
ادامه مطلب

اسفند 5, 1397

تشخیص رنگ با استفاده از رزبری پای

mjavad
ادامه مطلب

بهمن 10, 1397

راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت دوم

mjavad
ادامه مطلب

بهمن 10, 1397

راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت اول

mjavad
ادامه مطلب

بهمن 2, 1397

ساخت اسپیدکنترلر موتور براشلس 3 ( با سنسور )

Author Avatar
Admin
ادامه مطلب

دیدگاهتان را بنویسید لغو پاسخ

دسته های محصولات
آخرین دیدگاه‌ها
  • Admin در پروژه ی ساخت یک ریموت کنترل 2.4 گیگا هرتز برای 10 کانال
  • Admin در درباره ما
  • Admin در پروژه ی ساخت یک ریموت کنترل 2.4 گیگا هرتز برای 10 کانال
  • Admin در رادیوکنترل 4 کاناله با قابلیت افزایش تا 10 کانال
  • امیر در رادیوکنترل 4 کاناله با قابلیت افزایش تا 10 کانال
ژوئن 2026
ش ی د س چ پ ج
 12345
6789101112
13141516171819
20212223242526
27282930  
« آوریل    
فهرست 1
  • عضویت
  • ویرایش حساب کاربری
  • ورود
  • خانه
فهرست 2
  • حمایت مالی
  • تبلیغات
  • فروشنده
  • داشبورد فروشندگان
  • سفارش پروژه
  • تماس با ما
  • درباره ما
فهرست 3
  • ویرایش حساب کاربری
  • فراموشی رمز عبور
  • ثبت نام
  • ویرایش حساب کاربری
محل کد نماد...
جستجو برای:
محصولات
  • دوره کوادکوپتر سرعتی FPV دوره آموزش ساخت کوادکوپتر مسابقاتی FPV
    نمره 4.00 از 5

    4,830,000 
  • دوره هواپیما مقدماتی تا پیشرفته دوره آموزش ساخت پهپاد بال ثابت ( هواپیما ) - مقدماتی تا پیشرفته
    10,480,000 
  • دوره کوادکوپتر مقدماتی دوره آموزش مقدماتی ساخت مولتی کوپتر (کوادکوپتر، هگزاکوپتر و ...)
    2,490,000 
  • دوره کوادکوپتر فیلم بردار دوره آموزش ساخت پهپاد فیلم بردار ( مولتی کوپتر )
    8,970,000 
  • دوره هواپیمای مدل موتور کشی دوره آموزش ساخت هواپیمای موتور کشی
    2,030,000 
نوشته‌های تازه
  • برنامه نویسی به زبان پایتون برای رزبری پای
  • تشخیص رنگ با استفاده از رزبری پای
  • راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت دوم
  • راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت اول
  • کنترل PID با آردوینو و دو موتور براشلس

درباره آوات روبو

 

آرمان آوات روبو نه تنها تغییر اکنون و تعریف آینده آموزش عملی و کاربردی در ایران، بلکه توسعه همین تغییر به کل دنیا است. نسخه بین المللی آوات روبو، هم اکنون در حال برنامه ریزی است و کارهای اولیه آن برای فعالیت در یوتیوب و یک سایت انگلیسی در حال انجام است.

دسترسی سریع

  • دوره های آموزشی
  • کیت
  • کلاس های حضوری
  • پروژه

کاوش

  • درباره ما
  • تماس با ما
  • مقالات

شبکه های اجتماعی

  • اینیستاگرام
  • یوتیوب
  • تلگرام

استفاده از مطالب سایت برای مقاصد غیر تجاری و با ذکر منبع بلامانع است. تمامی حقوق برای آوات روبو محفوظ است.