Chip 2
Chip 2
h>
Servo myservo;
#define led1 5
#define led2 6
#define row1 2
#define row2 4
#define row3 A5
#define row4 A4
#define col1 A3
#define col2 A2
#define col3 A1
#define col4 A0
//------------ khai báo biến toàn cục nếu có -----------
int t0=0, t1=0;
int count=0;
//--------- các chương trinh con-------------
void led7seg (int x )
{
//số 0:
if ( x == 0 ){
digitalWrite(ledA, 0);
digitalWrite(ledB, 0);
digitalWrite(ledC, 0);
digitalWrite(ledD, 0);
digitalWrite(ledE, 0);
digitalWrite(ledF, 0);
digitalWrite(ledG, 1);
}
//số 1:
if ( x==1 ){
digitalWrite(ledA, 1);
digitalWrite(ledB, 0);
digitalWrite(ledC, 0);
digitalWrite(ledD, 1);
digitalWrite(ledE, 1);
digitalWrite(ledF, 1);
digitalWrite(ledG, 1);
}
//số 2:
if (x==2){
digitalWrite(ledA, 1);
digitalWrite(ledB, 1);
digitalWrite(ledC, 0);
digitalWrite(ledD, 1);
digitalWrite(ledE, 1);
digitalWrite(ledF, 0);
digitalWrite(ledG, 1);
}
//số 3:
if (x==3){
digitalWrite(ledA, 1);
digitalWrite(ledB, 1);
digitalWrite(ledC, 1);
digitalWrite(ledD, 1);
digitalWrite(ledE, 0);
digitalWrite(ledF, 0);
digitalWrite(ledG, 1);
}
//số 4:
if (x==4){
digitalWrite(ledA, 0);
digitalWrite(ledB, 0);
digitalWrite(ledC, 1);
digitalWrite(ledD, 0);
digitalWrite(ledE, 0);
digitalWrite(ledF, 1);
digitalWrite(ledG, 1);
}
//số 5:
if ( x==5 ){
digitalWrite(ledA, 0);
digitalWrite(ledB, 1);
digitalWrite(ledC, 0);
digitalWrite(ledD, 0);
digitalWrite(ledE, 1);
digitalWrite(ledF, 0);
digitalWrite(ledG, 0);
}
//số 6:
if(x==6){
digitalWrite(ledA, 0);
digitalWrite(ledB, 1);
digitalWrite(ledC, 0);
digitalWrite(ledD, 0);
digitalWrite(ledE, 0);
digitalWrite(ledF, 0);
digitalWrite(ledG, 0);
}
//số 7:
if (x==7){
digitalWrite(ledA, 0);
digitalWrite(ledB, 0);
digitalWrite(ledC, 0);
digitalWrite(ledD, 1);
digitalWrite(ledE, 1);
digitalWrite(ledF, 1);
digitalWrite(ledG, 1);
}
//số 8:
if (x==8){
digitalWrite(ledA, 0);
digitalWrite(ledB, 0);
digitalWrite(ledC, 0);
digitalWrite(ledD, 0);
digitalWrite(ledE, 0);
digitalWrite(ledF, 0);
digitalWrite(ledG, 0);
}
//số 9:
if (x==9){
digitalWrite(ledA, 0);
digitalWrite(ledB, 0);
digitalWrite(ledC, 0);
digitalWrite(ledD, 0);
digitalWrite(ledE, 1);
digitalWrite(ledF, 0);
digitalWrite(ledG, 0);
}
}
void led7_dual(int x)
{
digitalWrite(led1, 1);digitalWrite(led2, 0);
led7seg(x/10); delay(10);
digitalWrite(led1, 0);digitalWrite(led2, 1);
led7seg(x%10); delay(10);
}
int scan_keypad()
{
int code=255;
//hàng 1
digitalWrite(row1, 0);digitalWrite(row2, 1);digitalWrite(row3, 1);digitalWrite(row4, 1);
if (digitalRead(col1) == 0) code = 1;
if (digitalRead(col2) == 0) code = 2;
if (digitalRead(col3) == 0) code = 3;
if (digitalRead(col4) == 0) code = 'A';
digitalWrite(row1, 1);digitalWrite(row2, 0);digitalWrite(row3, 1);digitalWrite(row4, 1);
if (digitalRead(col1) == 0) code = 4;
if (digitalRead(col2) == 0) code = 5;
if (digitalRead(col3) == 0) code = 6;
if (digitalRead(col4) == 0) code = 'B';
digitalWrite(row1, 1);digitalWrite(row2, 1);digitalWrite(row3, 0);digitalWrite(row4, 1);
if (digitalRead(col1) == 0) code = 7;
if (digitalRead(col2) == 0) code = 8;
if (digitalRead(col3) == 0) code = 9;
if (digitalRead(col4) == 0) code = 'C';
digitalWrite(row1, 1);digitalWrite(row2, 1);digitalWrite(row3, 1);digitalWrite(row4, 0);
if (digitalRead(col1) == 0) code = '*';
if (digitalRead(col2) == 0) code = 0;
if (digitalRead(col3) == 0) code = '#';
if (digitalRead(col4) == 0) code = 'D';
return code;
}
//---------- chương trình Setup, cài đặt ban đầu --------
void setup()
{
pinMode(ledA, OUTPUT);
pinMode(ledB, OUTPUT);
pinMode(ledC, OUTPUT);
pinMode(ledD, OUTPUT);
pinMode(ledE, OUTPUT);
pinMode(ledF, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
t0=millis();
myservo.attach(3);
pinMode(row1, OUTPUT);
pinMode(row2, OUTPUT);
pinMode(row3, OUTPUT);
pinMode(row4, OUTPUT);
pinMode(col1, INPUT_PULLUP);
pinMode(col2, INPUT_PULLUP);
pinMode(col3, INPUT_PULLUP);
pinMode(col4, INPUT_PULLUP);
Serial.begin(9600);
}
//Serial.println(key);
led7_dual(key);