0% found this document useful (0 votes)
33 views8 pages

Chip 2

The document contains code for an Arduino project that reads input from a 4x4 keypad and displays the input on a 7-segment LED display. It defines pin assignments for the keypad rows and columns and the LED display segments. It includes functions to scan the keypad, display numbers on the 7-segment LED, and send data to the serial monitor upon key presses. The main loop scans the keypad, displays the input, and transmits codes when specific keys are pressed.

Uploaded by

trungdthe172400
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views8 pages

Chip 2

The document contains code for an Arduino project that reads input from a 4x4 keypad and displays the input on a 7-segment LED display. It defines pin assignments for the keypad rows and columns and the LED display segments. It includes functions to scan the keypad, display numbers on the 7-segment LED, and send data to the serial monitor upon key presses. The main loop scans the keypad, displays the input, and transmits codes when specific keys are pressed.

Uploaded by

trungdthe172400
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 8

#include <Servo.

h>
Servo myservo;

//------------- định nghĩa đổi tên chân cổng------------


#define ledA 7
#define ledB 8
#define ledC 9
#define ledD 10
#define ledE 11
#define ledF 12
#define ledG 13

#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);
}

// ---------------- chương trinh chính -----------------


void loop()
{
//B1: thu thập dữ liệu----------------

//B2: xử lý, đếm nút, chống nhiễu, thời gian thực...


//B2: quét ma trận phím
int key = scan_keypad();

//Serial.println(key);
led7_dual(key);

//b2.1: xử lý đếm 1 giây chuẩn


/*
t1 = millis();
if ( t1 - t0 >300)
{
count++;
t0=t1;
}
*/

//B3: đk đầu ra, led, loa, động cơ, lcd...


//B3.0: xử lý truyên thông
if ( key == 0) Serial.print("*mode=0/");
if ( key == 1) Serial.print("*mode=1/");
if ( key == 2) Serial.print("*mode=2/");
if ( key == 3) Serial.print("*mode=3/");
if ( key == 4) Serial.print("*mode=4/");
if ( key == 5) Serial.print("*mode=5/");
if ( key == 6) Serial.print("*mode=6/");

You might also like