Skip to content

Instantly share code, notes, and snippets.

@dev-ritik
Created May 3, 2019 19:05
Show Gist options
  • Save dev-ritik/1671688116035217eec64fbaa8128fc9 to your computer and use it in GitHub Desktop.
Save dev-ritik/1671688116035217eec64fbaa8128fc9 to your computer and use it in GitHub Desktop.
The code for 4 switch voting machine with buzzer on Raspberry Pi
#include<wiringPi.h>
#include<stdio.h>
#define RS 11
#define EN 10
#define D4 6
#define D5 5
#define D6 4
#define D7 1
#define led1 14
#define led2 26
#define led3 16
#define led4 28
#define led5 29 //green
#define buzz 13
#define in1 21
#define in2 22
#define in3 23
#define in4 24
#define in5 25
int vote1=0,vote2=0,vote3=0,vote4=0;
int i=0;
char vote[5];
void compare();
void show();
void lcdcmd(unsigned char ch)
{
int temp=0x80;
digitalWrite(D4, temp & ch<<3);
digitalWrite(D5, temp & ch<<2);
digitalWrite(D6, temp & ch<<1);
digitalWrite(D7, temp & ch);
digitalWrite(RS, LOW);
digitalWrite(EN, HIGH);
delay(10);
digitalWrite(EN, LOW);
digitalWrite(D4, temp & ch<<7);
digitalWrite(D5, temp & ch<<6);
digitalWrite(D6, temp & ch<<5);
digitalWrite(D7, temp & ch<<4);
digitalWrite(RS, LOW);
digitalWrite(EN, HIGH);
delay(10);
digitalWrite(EN, LOW);
}
void write(unsigned char ch)
{
int temp=0x80;
digitalWrite(D4, temp & ch<<3);
digitalWrite(D5, temp & ch<<2);
digitalWrite(D6, temp & ch<<1);
digitalWrite(D7, temp & ch);
digitalWrite(RS, HIGH);
digitalWrite(EN, HIGH);
delay(10);
digitalWrite(EN, LOW);
digitalWrite(D4, temp & ch<<7);
digitalWrite(D5, temp & ch<<6);
digitalWrite(D6, temp & ch<<5);
digitalWrite(D7, temp & ch<<4);
digitalWrite(RS, HIGH);
digitalWrite(EN, HIGH);
delay(10);
digitalWrite(EN, LOW);
}
void clear()
{
lcdcmd(0x01);
}
void setCursor(int x, int y)
{
int set=0;
if(y==0)
set=128+x;
if(y==1)
set=192+x;
lcdcmd(set);
}
void print(unsigned char *str)
{
while(*str)
{
write(*str);
str++;
}
}
void begin(int x, int y)
{
lcdcmd(0x02);
lcdcmd(0x28);
lcdcmd(0x06);
lcdcmd(0x0e);
lcdcmd(0x01);
}
void setup()
{
if(wiringPiSetup()==-1)
printf("ERROR\n");
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
pinMode(buzz, OUTPUT);
pinMode(RS, OUTPUT);
pinMode(EN, OUTPUT);
pinMode(D4, OUTPUT);
pinMode(D5, OUTPUT);
pinMode(D6, OUTPUT);
pinMode(D7, OUTPUT);
pinMode(in1, INPUT);
pinMode(in2, INPUT);
pinMode(in3, INPUT);
pinMode(in4, INPUT);
pinMode(in5, INPUT);
digitalWrite(in1, HIGH);
digitalWrite(in2, HIGH);
digitalWrite(in3, HIGH);
digitalWrite(in4, HIGH);
digitalWrite(in5, HIGH);
begin(16,2);
}
void buzzer()
{
digitalWrite(buzz, HIGH);
delay(200);
digitalWrite(buzz, LOW);
}
void wait()
{
digitalWrite(led5, LOW);
delay(200);
}
void main()
{
setup();
printf("Electronic Voting\n");
print("Electronic Voting");
setCursor(0,1);
printf("Machine with RPI\n");
print("Machine with RPI");
delay(2000);
clear();
printf("Vote is fun\n");
print("Vote is fun");
setCursor(0,1);
printf("Welcomes You\n");
print("Welcomes You");
delay(2000);
clear();
show();
while(1)
{
digitalWrite(led5, HIGH);
digitalWrite(in3, HIGH);
if(digitalRead(in1)==0)
{
printf("Button1\n");
++vote1;
digitalWrite(led1, HIGH);
buzzer();
digitalWrite(led1, LOW);
wait();
show();
}
if(digitalRead(in2)==0)
{
printf("Button2\n");
++vote2;
digitalWrite(led2, HIGH);
buzzer();
digitalWrite(led2, LOW);
wait();
show();
while(digitalRead(in2)==0);
}
else if(digitalRead(in3)==0)
{
printf("Button3\n");
++vote3;
digitalWrite(led3, HIGH);
buzzer();
digitalWrite(led3, LOW);
wait();
show();
while(digitalRead(in3)==0);
}
else if(digitalRead(in4)==0)
{
printf("Button4\n");
++vote4;
digitalWrite(led4, HIGH);
buzzer();
digitalWrite(led4, LOW);
wait();
show();
while(digitalRead(in4)==0);
}
else if(digitalRead(in5)==0)
{
printf("Button5\n");
compare();
while(digitalRead(in5)==0);
}
}
}
void show()
{
setCursor(0,0);
printf("P1 P2 P3 P4\n");
print("P1 P2 P3 P4");
setCursor(1,1);
sprintf(vote,"%d",vote1);
print(vote);
printf("%d ",vote1);
setCursor(6,1);
sprintf(vote,"%d",vote2);
print(vote);
printf("%d ",vote2);
setCursor(10,1);
sprintf(vote,"%d",vote3);
print(vote);
printf("%d ",vote3);
setCursor(14,1);
sprintf(vote,"%d",vote4);
print(vote);
printf("%d ",vote4);
delay(100);
}
void compare()
{
clear();
printf("Please Wait....\n");
wait();
if(vote1 > vote2 && vote1>vote3 && vote1>vote4)
{
digitalWrite(led1, HIGH);
for(i=0;i<1;i++)
{
clear();
setCursor(0,0);
printf("Congratulations.......\n");
print("Congratulations.......");
setCursor(0,1);
printf("P1 Won election\n");
print("P1 Won election");
delay(2000);
clear();
setCursor(0,0);
printf("P1 P2 P3 P4\n");
print("P1 P2 P3 P4");
setCursor(1,1);
sprintf(vote,"%d",vote1);
print(vote);
printf("%d ",vote1);
setCursor(6,1);
sprintf(vote,"%d",vote2);
print(vote);
printf("%d ",vote2);
setCursor(10,1);
sprintf(vote,"%d",vote3);
print(vote);
printf("%d ",vote3);
setCursor(14,1);
sprintf(vote,"%d",vote4);
print(vote);
printf("%d ",vote4);
delay(2000);
}
digitalWrite(led1, LOW);
}
else if(vote2 >vote1 && vote2>vote3 && vote2>vote4)
{
digitalWrite(led2, HIGH);
for(i=0;i<1;i++)
{
clear();
setCursor(0,0);
printf("Congratulations.......\n");
print("Congratulations.......");
setCursor(0,1);
printf("P2 Won election\n");
print("P2 Won election");
delay(2000);
clear();
setCursor(0,0);
printf("P1 P2 P3 P4\n");
print("P1 P2 P3 P4");
setCursor(1,1);
sprintf(vote,"%d",vote1);
print(vote);
printf("%d ",vote1);
setCursor(6,1);
sprintf(vote,"%d",vote2);
print(vote);
printf("%d ",vote2);
setCursor(10,1);
sprintf(vote,"%d",vote3);
print(vote);
printf("%d ",vote3);
setCursor(14,1);
sprintf(vote,"%d",vote4);
print(vote);
printf("%d ",vote4);
delay(2000);
}
digitalWrite(led2, LOW);
}
else if(vote3 > vote2 && vote3>vote1 && vote3>vote4)
{
digitalWrite(led3, HIGH);
for(i=0;i<1;i++)
{
clear();
setCursor(0,0);
printf("Congratulations.......\n");
print("Congratulations.......");
setCursor(0,1);
printf("P3 Won election\n");
print("P3 Won election");
delay(2000);
clear();
setCursor(0,0);
printf("P1 P2 P3 P4\n");
print("P1 P2 P3 P4");
setCursor(1,1);
sprintf(vote,"%d",vote1);
print(vote);
printf("%d ",vote1);
setCursor(6,1);
sprintf(vote,"%d",vote2);
print(vote);
printf("%d ",vote2);
setCursor(10,1);
sprintf(vote,"%d",vote3);
print(vote);
printf("%d ",vote3);
setCursor(14,1);
sprintf(vote,"%d",vote4);
print(vote);
printf("%d ",vote4);
delay(2000);
}
digitalWrite(led3, LOW);
}
else if(vote4 > vote2 && vote4>vote3 && vote4>vote1)
{
digitalWrite(led4, HIGH);
for(i=0;i<1;i++)
{
clear();
setCursor(0,0);
printf("Congratulations.......\n");
print("Congratulations.......");
setCursor(0,1);
printf("P4 Won election\n");
print("P4 Won election");
delay(2000);
clear();
printf("P1 P2 P3 P4\n");
print("P1 P2 P3 P4");
setCursor(1,1);
sprintf(vote,"%d",vote1);
print(vote);
printf("%d ",vote1);
setCursor(6,1);
sprintf(vote,"%d",vote2);
print(vote);
printf("%d ",vote2);
setCursor(10,1);
sprintf(vote,"%d",vote3);
print(vote);
printf("%d ",vote3);
setCursor(14,1);
sprintf(vote,"%d",vote4);
print(vote);
printf("%d ",vote4);
delay(2000);
}
digitalWrite(led4, LOW);
}
else
{
for(i=0;i<1;i++)
{
clear();
setCursor(0,0);
printf("Tie Between Two\n");
print("Tie Between Two");
setCursor(0,1);
printf("or more Parties\n");
print("or more Parties");
delay(2000);
clear();
printf("P1 P2 P3 P4\n");
print("P1 P2 P3 P4");
setCursor(1,1);
sprintf(vote,"%d",vote1);
print(vote);
printf("%d ",vote1);
setCursor(6,1);
sprintf(vote,"%d",vote2);
print(vote);
printf("%d ",vote2);
setCursor(10,1);
sprintf(vote,"%d",vote3);
print(vote);
printf("%d ",vote3);
setCursor(14,1);
sprintf(vote,"%d",vote4);
print(vote);
printf("%d ",vote4);
delay(2000);
}
}
vote1=0;
vote2=0;
vote3=0;
vote4=0;
clear();
show();
}
@dev-ritik
Copy link
Author

⚠️ DO NOT DELETE ⚠️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment