基于Arduino的无线抢答器设计说明

合集下载

单片机六路抢答器课程设计

单片机六路抢答器课程设计

单片机六路抢答器课程设计
单片机六路抢答器是一种用于教育培训场景的设备,旨在提高学生的抢答能力和思维敏捷性。

在这个课程设计中,我们将使用单片机来实现一个具有六个按钮的抢答器系统。

首先,我们需要准备硬件部分的材料。

一个典型的单片机抢答器系统包括一个单片机主控板、六个按钮、一个显示器以及一些连接线材。

在这里,我们选择使用常见的Arduino Uno作为单片机主控板,并将六个按钮分别连接到主控板的不同IO口上。

接下来,我们需要编写相应的代码来实现抢答器的功能。

在Arduino 编程环境中,我们可以使用C/C++语言来编写代码。

首先,我们需要初始化IO口和显示器。

然后,我们可以设置一个定时器,用于限制每个学生的抢答时间。

当某个按钮被按下时,我们可以通过判断相应的IO口状态来确定哪个学生抢答成功。

最后,我们将抢答结果显示在显示器上。

除了基本的抢答功能,我们还可以进一步扩展课程设计。

例如,我们可以加入抢答器的计分功能,每次学生抢答成功后,可以在显示器上显示相应的分数。

此外,我们还可以设置难度级别,给不同的学生设置不同的抢答时间限制,以提高学生的竞争性和抢答能力。

在课程设计的过程中,我们可以引入一些有趣的抢答游戏,例如多人对战、团队比赛等,以增加学生的参与度和趣味性。

此外,我们还可以加入音效和灯光效果,使整个抢答过程更加生动有趣。

总之,单片机六路抢答器是一个很好的教育培训工具,可以帮助学生提高抢答能力和思维敏捷性。

通过合理设计课程内容和引入一些有趣的元素,我们可以创造一个富有活力和互动性的课堂氛围,激发学生的学习兴趣和积极性。

基于单片机的无线抢答器设计

基于单片机的无线抢答器设计

摘要当今社会竞争日益激烈,知识竞赛等各项比赛、活动愈加频繁,因此抢答的应用与需求也越来越普遍,在生活中扮演的角色越来越重要。

同时,智力竞赛是一种生动活泼、寓教于乐的活动形式,而抢答是智力竞赛中非常常见的一种答题方式。

在进行智力竞赛时,往往都是几个组抢答问题,这就要求在时间上严格的区分先后。

若是仅凭主持人的主观判断,则很容易造成错判、误判。

为此,我们需要设计一种具备自动锁存、置位、清零等功能的智能抢答器来解决这些问题。

传统的抢答器都是导线布线,受现场环境影响很大。

本文介绍了一种用52系列单片机的数码显示无线抢答器的电路组成、设计思路及功能。

该抢答器除具有基本的抢答功能外,还具有计时和报警功能。

主持人通过时间预设开关计算抢答时间。

系统将完成自动倒计时。

若在规定的时间内有人抢答,则计时将自动停止;若在规定的时间内无人抢答,则系统中的蜂鸣器将发响,提示主持人本轮抢答无效,实现报警功能。

关键词:无线抢答,定时抢答,无线发射和接收,PT2262/PT2272ABSTRACTAt present, award winning, knowledge contests and other activities become more frequently, so the Application of Answer and demand will become increasingly common.At the same time,it is a lively competition, fun activities in the form of, and vies to answer first is very common in the quiz answer a way. In intelligence contest, often are several group vies to answer first problem, it is required in time in the strict distinction between successively. If only with the host of the subjective judgment, it is very easy to create the falsely accused, misjudgment. For this, we need to design a kind of have to be automatic lock to save, buy a, reset function of intelligent vies to answer first device to solve these problems.The traditional vies to answer first vessels were wire wiring, the environment by influence. This paper introduces a kind of 51 series microcontroller with the digital display wireless road 4 is composed of the circuit, vies to answer first design idea and function. This is in addition to the basic vies to answer first vies to answer first function outside, still have time and alarm function. By the time the switch calculation vies to answer first time. The system will complete automatic countdown. If the stipulated time someone vies to answer first, the timing will automatically stop; If the stipulated time no contest, the system will send the buzzer rang, indicating that the host this contest null and void, realize the alarm function.Key words: wireless Answer,timing answer,wireless transceiver,PT2262/PT2272目录摘要 (I)ABSTRACT (II)第1章绪论 (1)1.1 单片机抢答器的背景 (1)1.2单片机对抢答器的意义 (2)1.3 抢答器的应用 (2)第2章系统方案与论证 (4)2.1基本要求 (4)2.2 系统方案框图 (4)2.3系统方案的选择 (5)2.3.1 无线模块 (5)2.3.2微控制器模块 (8)2.3.3 显示和语言提示模块 (9)第3章硬件设计 (10)3.1AT89S52简介 (10)3.2无线发射电路 (12)3.3 无线接收电路 (13)3.4 输出控制模块 (14)第4章软件设计 (16)4.1抢答器流程图 (16)4.2主程序 (18)4.3中断程序 (21)4.3.1什么是中断 (21)4.3.2中断所用到的寄存器 (22)第5章系统仿真 (24)5.1proteus软件的介绍 (24)5.2抢答器proteus软件的仿真 (24)第6章调试功能说明 (27)6.1系统的调试 (27)6.2软件调试问题及解决 (28)第7章总结 (30)7.1结论 (30)7.2心得体会 (30)7.3工作展望 (31)致谢 (32)参考文献 (33)附录1 (34)附录2 (36)第1章绪论1.1单片机抢答器的背景早期的竞赛器只由几个过三极管、可控硅、发光二极管等组成,能通过发光二极管的指示辨认出选手号码,现在大多数竞赛器单片机或数字集成电路组成。

抢答器设计实验报告

抢答器设计实验报告

抢答器设计实验报告抢答器设计实验报告一、引言在现代教育中,互动性和参与度是学生学习的重要因素。

为了提高课堂的活跃程度和学生的参与度,我们设计了一种抢答器。

本实验报告将介绍抢答器的设计原理、实验过程和结果分析。

二、设计原理抢答器的设计基于无线电频率识别技术。

抢答器由两部分组成:主机和抢答器设备。

主机通过无线电频率识别技术与抢答器设备进行通信,实现答题者的抢答功能。

三、实验过程1. 材料准备我们准备了一台电脑、一块Arduino开发板、一块无线电频率识别模块、若干个按钮开关和一些导线。

2. 硬件连接我们将Arduino开发板与无线电频率识别模块通过导线连接,并将按钮开关分别连接到Arduino开发板上。

3. 软件编程我们使用Arduino开发环境编写了控制程序。

程序主要实现了无线电频率识别模块的初始化、按钮开关的状态检测和与主机的通信功能。

4. 抢答器设备制作我们将按钮开关固定在一个小盒子上,连接好导线,并将无线电频率识别模块放置在盒子内。

5. 实验验证我们进行了一系列实验来验证抢答器的功能。

首先,我们将主机与抢答器设备进行配对。

然后,我们进行了多次抢答实验,记录了每个学生的抢答时间和正确率。

四、结果分析通过实验,我们发现抢答器在提高课堂互动性和学生参与度方面有着显著的效果。

抢答器能够快速准确地记录学生的抢答时间,并通过主机进行统计分析。

我们还发现,学生在使用抢答器后更加积极主动地参与课堂讨论,提高了他们的学习兴趣和主动性。

然而,我们也发现了一些问题。

由于抢答器设备的制作过程较为复杂,需要一定的技术支持和时间投入。

此外,抢答器的使用也需要一定的操作技巧,对于一些不熟悉技术的教师和学生来说可能存在一定的学习成本。

五、结论抢答器作为一种课堂互动工具,能够有效提高学生的参与度和学习效果。

然而,在推广和应用抢答器时,需要考虑到设备制作和操作技巧等方面的问题。

未来,我们可以进一步改进抢答器的设计,使其更加简单易用,以满足更广泛的教育需求。

机器人三级实操抢答器设计

机器人三级实操抢答器设计

机器人三级实操抢答器设计一、前言机器人技术的发展已经越来越成熟,越来越多的人开始关注和学习机器人技术。

在机器人领域,抢答器是一个非常有用的工具,它能够帮助我们进行快速准确的抢答。

本文将介绍如何设计一个机器人三级实操抢答器。

二、材料准备1. Arduino UNO开发板2. 16×2字符液晶显示屏3. 红色LED灯4. 5V蜂鸣器5. 8个按键(4个作为答案选项,3个作为控制键,1个作为重置键)6. 杜邦线若干三、电路设计1. 将Arduino UNO开发板连接到计算机上,并打开Arduino IDE。

2. 将LCD显示屏与Arduino UNO开发板连接。

将LCD的VSS引脚连接到GND引脚上,将LCD的VDD引脚连接到+5V引脚上,将LCD的VO引脚连接到可变电阻上,再将可变电阻另一端连接到GND 引脚上。

将LCD的RS、RW和E引脚分别连接到Arduino UNO开发板的数字引脚12、11和10上。

将LCD的D4、D5、D6和D7引脚分别连接到Arduino UNO开发板的数字引脚5、4、3和2上。

3. 将红色LED灯与Arduino UNO开发板连接。

将LED的正极连接到数字引脚8上,将LED的负极连接到GND引脚上。

4. 将5V蜂鸣器与Arduino UNO开发板连接。

将蜂鸣器的正极连接到数字引脚9上,将蜂鸣器的负极连接到GND引脚上。

5. 将8个按键与Arduino UNO开发板连接。

将4个答案选项按键分别连接到数字引脚A0-A3上,将3个控制键分别连接到数字引脚A4-A6上,将重置键连接到数字引脚A7上。

四、程序设计1. 打开Arduino IDE,并新建一个工程。

2. 编写程序代码。

程序主要包括初始化LCD屏幕、初始化按键、显示题目和答案选项、检测用户输入并判断是否正确等功能。

具体实现方式可以参考以下代码:#include <LiquidCrystal.h>LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);int answerPin[4] = {A0,A1,A2,A3};int controlPin[3] = {A4,A5,A6};int resetPin = A7;int answer[4] = {0,0,0,0};int correctAnswer = 0;int userAnswer = 0;int score = 0;void setup() {lcd.begin(16, 2);pinMode(resetPin, INPUT_PULLUP);for(int i=0; i<4; i++){pinMode(answerPin[i], INPUT_PULLUP); answer[i] = digitalRead(answerPin[i]); }for(int i=0; i<3; i++){pinMode(controlPin[i], INPUT_PULLUP); }randomSeed(analogRead(0));}void loop() {lcd.clear();int a = random(10)+1;int b = random(10)+1;correctAnswer = a + b;lcd.setCursor(3,0);lcd.print(a);lcd.setCursor(5,0);lcd.print("+");lcd.setCursor(7,0);lcd.print(b);for(int i=0; i<4; i++){if(answer[i] == correctAnswer){answer[i] += random(-2,3); //随机生成答案选项 }}for(int i=0; i<4; i++){int positionX = (i%2)*8;int positionY = (i/2)*2+1;lcd.setCursor(positionX,positionY);lcd.print(i+1);lcd.setCursor(positionX+2,positionY); lcd.print(":");lcd.setCursor(positionX+4,positionY); if(answer[i]==correctAnswer){lcd.print(correctAnswer); //正确答案 }else{lcd.print(answer[i]); //错误答案}}while(1){for(int i=0; i<4; i++){if(digitalRead(answerPin[i])==LOW){ userAnswer = answer[i];break;}}if(userAnswer!=0){break;}}if(userAnswer==correctAnswer){ score++;lcd.setCursor(0,0);lcd.print("Correct!");digitalWrite(8,HIGH);tone(9, 2000, 500);delay(1000);digitalWrite(8,LOW);}else{lcd.setCursor(0,0);lcd.print("Wrong! ");lcd.setCursor(7,0);lcd.print(correctAnswer);delay(2000);}for(int i=0; i<4; i++){answer[i] = digitalRead(answerPin[i]);}userAnswer = 0;while(digitalRead(resetPin)==HIGH){}}五、实验结果通过上述电路和程序设计,我们可以成功制作出一个机器人三级实操抢答器。

arduino抢答器课程设计

arduino抢答器课程设计

arduino抢答器课程设计一、课程目标知识目标:1. 让学生理解Arduino的基本原理和编程概念;2. 让学生掌握抢答器的电路连接和编程方法;3. 让学生了解数字输入输出、条件语句和循环语句在Arduino编程中的应用。

技能目标:1. 培养学生动手搭建电路的能力,能独立完成抢答器的硬件连接;2. 培养学生运用Arduino编程软件进行编程的能力,能编写简单的抢答器程序;3. 培养学生分析问题、解决问题的能力,通过修改程序实现不同的抢答功能。

情感态度价值观目标:1. 激发学生对电子制作和编程的兴趣,培养创新意识和动手实践能力;2. 培养学生团队协作精神,学会在小组合作中分享观点和解决问题;3. 培养学生积极主动的学习态度,敢于面对挑战,勇于克服困难。

课程性质:本课程为实践性较强的课程,结合Arduino编程和电子制作,旨在培养学生的动手能力、编程思维和创新能力。

学生特点:五至六年级学生具有一定的逻辑思维能力和动手能力,对新鲜事物充满好奇心,但编程基础较弱。

教学要求:注重理论与实践相结合,以学生为主体,引导他们主动探索、实践和思考,提高解决问题的能力。

教学过程中,教师需关注学生的个体差异,给予个性化指导。

通过本课程的学习,使学生能够将所学知识应用于实际项目中,达到学以致用的目的。

二、教学内容1. Arduino基础知识:介绍Arduino的硬件组成、编程环境及基本编程语法,让学生对Arduino有初步的认识。

相关教材章节:第一章 Arduino入门2. 抢答器电路连接:讲解抢答器电路的原理,引导学生动手搭建电路,实现按钮输入和LED输出。

相关教材章节:第二章 电子元件与电路3. Arduino编程:教授如何使用Arduino编程软件,编写抢答器程序,包括数字输入输出、条件语句和循环语句的应用。

相关教材章节:第三章 数字输入输出;第四章 控制语句4. 抢答器功能实现:指导学生通过编程实现抢答功能,如抢答成功LED亮起、蜂鸣器响起等。

五路抢答器的设计

五路抢答器的设计

五路抢答器的设计一、硬件设计1. 控制主板:使用一块性能强大的控制主板,如Arduino、Raspberry Pi等,作为整个系统的控制中心。

主板具有多个IO口以及通信接口,能够连接各个模块并进行信息传输和控制。

2.按钮模块:每个参与者都配备一个按钮模块,该模块由一个按钮和一个可编程的LED显示屏组成,按钮用于参与者抢答,显示屏用于显示参与者答案。

3.抢答器主机:由一个大屏幕显示器和一个抢答指示灯构成。

大屏幕显示器用于显示所有参与者的答案,抢答指示灯用于指示当前回答问题的参与者。

4.通信模块:通过无线通信方式,实现各个模块之间的数据传输,包括控制指令的发送和答案的传递。

二、工作原理1.参与者按下按钮后,按钮模块将信号发送给控制主板,表示参与者已经抢答。

2.控制主板接收到信号后,将相应的参与者编号发送给抢答器主机,并点亮相应的抢答指示灯。

3.抢答器主机接收到编号后,将其显示在大屏幕上,同时关闭其他参与者的指示灯。

4.控制主板在一定时间内接收其他参与者的抢答信号,并判断每个参与者的答案是否准确。

5.控制主板根据答案的准确性,将结果发送给抢答器主机并在大屏幕上显示。

6.抢答器主机接收到结果后,将其显示在大屏幕上。

同时,控制主板清空所有按钮模块上的答案,准备下一轮抢答。

三、系统功能1.抢答功能:参与者按下按钮后,系统迅速显示参与者的答案,并将其显示在大屏幕上。

2.准确性判断:控制主板根据预设答案进行比对,判断参与者的答案是否准确,并将结果显示在大屏幕上。

3.交互性强:系统能够实时显示参与者的抢答情况,通过大屏幕和抢答指示灯提供视觉反馈,增加比赛的紧张感。

4.多人同时抢答:系统支持五个参与者同时抢答,保证公平性。

5.结果记录:系统能够记录每轮抢答的参与者和答案,并在大屏幕上显示。

6.灵活性:系统可以根据比赛需要进行扩展,支持更多参与者同时抢答。

四、系统优势1.简单易用:参与者只需按下按钮即可完成抢答,无需进行复杂的设置或操作。

抢答器说明书(附完整原理图及程序)

抢答器说明书(附完整原理图及程序)

作品名称:八路抢答器组员:贾利伟、吴小勇、湛亚熙一、功能说明二、原理图说明1.数码管连接电路/********************************************数码管动态扫描处理程序(所有动态扫描显示共用)************************************************/void shumasm(uchar m,int n){int gewei,shiwei,baiwei;gewei=n%10;shiwei=n/10%10;baiwei=n/100;P0=m;//取显示数据,段码P2=0xef; //取第一位delay(20); //扫描间隙延时,时间太长会闪烁,太短会造成重影P0=LED[baiwei]; P2=0xdf;delay(20);P0=LED[shiwei]; P2=0xbf;delay(20);P0=LED[gewei]; P2=0x7f;delay(20);}2、按键机发光二极管连接图三、程序说明#include<reg52.h> //包含单片机寄存器的头文件#define uchar unsigned char#define uint unsigned intuchar LED[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //共阳数码管:0-9uchar LED_num[]={0x40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00},num_mark=0;//共阳数码管:选手编号显示:0. 1.-8. ,num_mark用来标记最近一次抢答成功选手编号char num=0;//标记选手编号int score[9]={9,0,0,0,0,0,0,0,0};//score[0]用来寄存抢答时间限制限制标记位qdtime的值int dtime=120,qdtime,second,count;//答题时间标记位dtime、抢答时间限制限制标记位qdtime、抢答\答题倒计时标记位second、以及计数标记位countuchar qdtime_2=3,END_mark=0;//选手相关区sbit LED01=P1^0;sbit LED02=P1^1;sbit LED03=P1^2;sbit LED04=P1^3;sbit LED05=P1^4;sbit LED06=P1^5;sbit LED07=P1^6;sbit LED08=P1^7; //选手抢答“监视灯”sbit K1=P1^0;sbit K2=P1^1;sbit K3=P1^2;sbit K4=P1^3;sbit K5=P1^4;sbit K6=P1^5;sbit K7=P1^6;sbit K8=P1^7; //选手抢答按钮uchar K[]={0,0,0,0,0,0,0,0,0};//选手按钮按下标记位,按下后便标记为1 //主持人相关区sbit REST=P3^2;sbit END=P3^2;sbit B_score=P3^3;//分数调节按钮sbit last=P3^4;sbit next=P3^5;sbit KS1=P3^6;sbit KS2=P3^7;//主持人用功能开关,其中P3^2口两用,sbit ADD10=P2^0;sbit MIN10=P2^1;sbit ADD1=P2^2;sbit MIN1=P2^3;//主持人用功能开关,用于所有加减调节uchar ks1=0,ks2=0;//抢答和答题开关标记位//sbit BeepIO=P3^0;void delaynms(unsigned int j);//j毫秒延时void delay(uint i);//i微妙延时void BEEP();//提示音void BEEP2();//警告音void BEEP3();//void shumasm(uchar m,int n);void main(){ uint j;//用来构成循环TMOD=0x11;//T0设置为16位定时方式TH0=0x3c;TL0=0xb0;//50msIE= 0x82; //允许T0中断TR0=0; //关闭定时开关while(1){ while(1){ LED01=1;LED02=1;LED03=1;LED04=1;LED05=1;LED06=1;LED07=1;LED08=1;//监视灯初始化为灭if(KS1==0) {ks1=1;break;}//开始抢答倒计时if(KS2==0) {ks2=1;break;}//开始答题倒计时if(ADD1==0) {delaynms(20); if(ADD1==0) dtime++;if(dtime>=1000) dtime=0;}//答题时间调整if(MIN1==0) {delaynms(20); if(MIN1==0) dtime--;if(dtime<0) dtime=999;}if(ADD10==0) {delaynms(20); if(ADD10==0) dtime=dtime+10;if(dtime>=1000) dtime=0;}if(MIN10==0) {delaynms(20); if(MIN10==0) dtime=dtime-10;if(dtime<0) dtime=999;}shumasm(LED[qdtime_2],dtime);//数码管动态扫描4位if(B_score==0){ delaynms(20);if(B_score==0)while(1){ if(B_score==0){ delaynms(20);if(B_score==0) break;}//再次按下B_score退出分数调节shumasm(LED_num[num],score[num]); //数码管动态扫描4位,显示选手编号和对应分数if(next==0){ delaynms(20);if(next==0) num++; if(num==9) num=0;}//显示下一位选手编号和对应分数if(last==0){ delaynms(20);if(last==0) num--; if(num<0) num=8;}//显示上一位选手编号和对应分数if(REST==0) {delaynms(20); if(REST==0) score[num]=0; }//将当前选手分数清零if(ADD1==0) {delaynms(20); if(ADD1==0) score[num]++;if(score[num]>=1000) score[num]=0;}//调节数码管上对应选手分数,分数范围0-999if(MIN1==0) {delaynms(20); if(MIN1==0) score[num]--;if(score[num]<0) score[num]=999;}if(ADD10==0) {delaynms(20); if(ADD10==0)score[num]=score[num]+10;if(score[num]>=1000) score[num]=0;}if(MIN10==0) {delaynms(20); if(MIN10==0)score[num]=score[num]-10;if(score[num]<0) score[num]=999;}}}}if(ks1==1) //开始抢答倒计时{ ks1=0;TR0=1;//开始倒计时count=0;//计数标记位归零second=qdtime_2;P2=0xef;//选通最低位K[1]=0;K[2]=0;K[3]=0;K[4]=0;K[5]=0;K[6]=0;K[7]=0;K[8]=0;//选手按钮按下标记位归零while(1){P0=LED[second];if(second==0) {TR0=0;P0=LED[0];break;}if(second<=4) BEEP();//提示抢答快要开始if(K1==0&&K[1]==0) {LED01=0;K[1]=1;}//选手监视,并用红灯标记犯规选手if(K2==0&&K[2]==0) {LED02=0;K[2]=1;}if(K3==0&&K[3]==0) {LED03=0;K[3]=1;}if(K4==0&&K[4]==0) {LED04=0;K[4]=1;}if(K5==0&&K[5]==0) {LED05=0;K[5]=1;}if(K6==0&&K[6]==0) {LED06=0;K[6]=1;}if(K7==0&&K[7]==0) {LED07=0;K[7]=1;}if(K8==0&&K[8]==0) {LED08=0;K[8]=1;}if(END==0) {delaynms(10); if(END==0) { END_mark=1;break;}}//可按结束键随时结束抢答环节}if(END_mark==1) {END_mark=0;continue;}//若结束键按下则结束抢答环节if(K[1]==1&&K[2]==1&&K[3]==1&&K[4]==1&&K[5]==1&&K[6]==1&&K[7]==1&&K[8]==1) //若所有选手均犯规则报警一段时间后自动结束本次抢答{ for(j=0;j<22;j++)BEEP2();continue;}qdtime=score[0];count=0;//计数标记位归零second=qdtime;num_mark=0;while(1){ if(END==0) {delaynms(10); if(END==0) {END_mark=1;break;}}switch((uchar)!(K1||K[1])*1+(uchar)!(K2||K[2])*3+(uchar)!(K3||K[3])*5+(uchar)!(K4||K[4])*10+(uc har)!(K5||K[5])*20+(uchar)!(K6||K[6])*40+(uchar)!(K7||K[7])*80+(uchar)!(K8||K[8])*160){case 1: num_mark=1;break;case 3: num_mark=2;break;case 5: num_mark=3;break;case 10: num_mark=4;break;case 20: num_mark=5;break;case 40: num_mark=6;break;case 80: num_mark=7;break;case 160:num_mark=8;break;}if(num_mark!=0) break;//有人抢答成功则结束抢答if(qdtime!=0)//抢答时间不为999秒时则启动抢答倒计时{ if(second<=6) BEEP();TR0=1;shumasm(LED[num_mark],second);if(second==0) {TR0=0;break;}}}while(1){ if(END_mark==1) {END_mark=0;break;}P2=0xef;P0=LED[num_mark];if(num_mark!=0) BEEP3();//提示抢答成功else BEEP2(); //警告音if(END==0) {delaynms(10); if(END==0) break;}//可按结束键继续下一轮抢答或进入答题}}else if(ks2==1) //开始答题倒计时{ ks2=0;TR0=1;num=num_mark;//将抢答成功选手编号给numcount=0;//计数标记位归零second=dtime;while(1){ shumasm(0xff,second);//即用后三位显示答题倒计时if(second<10) BEEP();//提示答题时间将到if(second==0){ TR0=0;break;}if(END==0) {delaynms(10); if(END==0) {END_mark=1;break;}}//可按结束键随时结束答题}while(1){ shumasm(LED_num[num],score[num]); //数码管动态扫描4位,进入抢答成功选手分数调节if(END==0) {delaynms(10); if(END==0) break;}//可按结束键继续下一轮抢答或进入答题if(ADD1==0) {delaynms(20); if(ADD1==0) score[num]++;if(score[num]>=1000) score[num]=0;}//调节数码管上对应选手分数,分数范围0-999 if(MIN1==0) {delaynms(20); if(MIN1==0) score[num]--;if(score[num]<0) score[num]=999;}if(ADD10==0) {delaynms(20); if(ADD10==0)score[num]=score[num]+10;if(score[num]>=1000) score[num]=0;}if(MIN10==0) {delaynms(20); if(MIN10==0)score[num]=score[num]-10;if(score[num]<0) score[num]=999;}}}}}/******************************************延时函数**********************************************/void delaynms(unsigned int j)//j毫秒延时{ unsigned int i,k;for(k=0;k<j;k++)for(i=0;i<1000;i++) ;}void delay(uint i)//i微妙延时{ while(i--) ;}/****************************************************用来进行答题倒计时和抢答倒计时******************************************************/void Timer0(void) interrupt 1{TH0=0x3c; //重新赋值50msTL0=0xb0;count++;if(count==20){ count=0;second--;}}/************************************************************蜂鸣器发音程序区**************************************************************/void BEEP()//提示音{unsigned int i;for(i=0;i<100;i++)//喇叭发声的时间循环{delay(100); //参数决定发声的频率,估算值BeepIO=!BeepIO;}BeepIO=1; //喇叭停止工作,间歇的时间delay(5000);}void BEEP2()//警告音{ unsigned int i;for(i=0;i<400;i++)//喇叭发声的时间循环{BeepIO=0;delay(40); //参数决定发声的频率,估算值BeepIO=1;delay(30);}delay(12500);//喇叭停止工作,间歇的时间}void BEEP3()//抢答成功提示音{ unsigned int i;for(i=0;i<400;i++)//喇叭发声的时间循环{BeepIO=0;delay(25); //参数决定发声的频率BeepIO=1;delay(25);}delay(20000);//喇叭停止工作,间歇的时间}/********************************************数码管动态扫描处理程序************************************************/ void shumasm(uchar m,int n){int gewei,shiwei,baiwei;gewei=n%10;shiwei=n/10%10;baiwei=n/100;P0=m;//取显示数据,段码P2=0xef; //取第一位delay(20); //扫描间隙延时P0=LED[baiwei]; P2=0xdf;delay(20);P0=LED[shiwei]; P2=0xbf;delay(20);P0=LED[gewei]; P2=0x7f;delay(20);}。

单片机抢答器程序设计

单片机抢答器程序设计

单片机抢答器程序设计简介在现代教育中,抢答是一种常见的教学方法。

为了更好地组织抢答活动,并提高教学的互动性和趣味性,我们可以利用单片机来设计一个抢答器程序。

本文将详细介绍单片机抢答器程序的设计过程及实现方法。

硬件准备要设计一个单片机抢答器程序,首先需要准备以下硬件材料:1.单片机开发板:推荐使用常见的Arduino开发板。

2.按键模块:用于抢答器参与者按下回答问题的按钮。

3.显示模块:用于显示抢答器参与者的抢答次序和结果。

4.线路连接和电源供应。

硬件连接按照以下步骤进行硬件连接:1.将按键模块的一个引脚连接到单片机开发板的某个数字引脚上,并连接到地线(GND)。

2.将显示模块的引脚连接到单片机开发板的数字引脚上,并连接到地线(GND)。

3.连接电源供应。

程序设计下面是单片机抢答器程序设计的步骤:1.引入所需库文件。

2.定义按键和显示模块的引脚。

3.设置变量来记录抢答次序和结果。

4.设置变量来记录是否有人先按下了按钮。

5.设置变量来记录回答问题的时间。

6.初始化按键和显示模块。

7.设置主循环,监测是否有人按下了按钮。

8.当有人按下按钮时,检查是否已经有人先按下了按钮。

如果没有,则记录抢答次序和结果,并将变量标记为已按下。

9.更新显示模块的显示内容,显示抢答次序和结果。

10.延迟一段时间,然后清除显示内容。

11.返回主循环。

代码实现#include <LiquidCrystal.h>const int buttonPin = 2;const int lcd_rs = 12;const int lcd_en = 11;const int lcd_d4 = 5;const int lcd_d5 = 4;const int lcd_d6 = 3;const int lcd_d7 = 7;LiquidCrystal lcd(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7);int order = 0;bool isAnswered = false;bool isButtonPressed = false;void setup() {pinMode(buttonPin, INPUT);lcd.begin(16, 2);}void loop() {if (digitalRead(buttonPin) == HIGH && !isButtonPressed) {if (!isAnswered) {order++;lcd.setCursor(0, 0);lcd.print("Order: ");lcd.print(order);lcd.setCursor(0, 1);lcd.print("Answered");isAnswered = true;}isButtonPressed = true;}if (!isButtonPressed) {lcd.clear();isAnswered = false;}delay(100);isButtonPressed = false;}程序解释1.代码开始引入了LiquidCrystal库,该库用于控制液晶显示模块。

Arduino入门到精通例程7-抢答器

Arduino入门到精通例程7-抢答器

Arduino入门到精通例程7抢答器设计实验完成上面的实验以后相信已经有很多朋友可以独立完成这个实验了,本实验就是将上面的按键控制小灯的实验扩展成 3个按键对应3个小灯,占用6个数字I/O接口。

原理这里就不多说了同上面实验,下面附上参考原理图和实物连接图。

-.rduiiiv IDUA RET D12Arduino t)] 1i):'lrm3d-d三pn-ssnui tuIA|)参考源程序如下:in t redled=10; int yellowled=9; int gree nl ed=8; int redp in=7;int yellowp in=6; int gree npin=5; in t red;int yellow;int gree n;WWW F *严Mu m巧F<C 孟end IV I] > g 3Ehvoid setup(){pinMode(redled,OUTPUT);pinMode(yellowled,OUTPUT);pinMode(greenled,OUTPUT);pinMode(redpin,INPUT);pinMode(yellowpin,INPUT);pinMode(greenpin,INPUT);}void loop(){red=digitalRead(redpin); if(red==LOW){ digitalWrite(redled,LOW);} else{ digitalWrite(redled,HIGH);}yellow=digitalRead(yellowpin); if(yellow==LOW) { digitalWrite(yellowled,LOW);} else{ digitalWrite(yellowled,HIGH);}green=digitalRead(greenpin);if(gree n==LOW){ digitalWrite(gree nled,LOW);}else { digitalWrite(gree nled,HIGH);}}此程序与前面程序除接口增多以外并无异处,因此不做程序注解分下载完程序,我们自己制作的简易抢答器就完成了。

Arduino创意设计:抢答器

Arduino创意设计:抢答器

按钮 3个



Hale Waihona Puke : J I A—B型 USB线 1根 I/0传感器扩展板 1块
一 2丰命答 景
黧 接下来制作抢答器的外壳 ,制作方法如下:
第 一 步 : 使 用 椴 木 板 制 作 一 个 长 方 形 的盒 子 (图 3)。
椴 木板 若 干
传感器连接线 5根
20 March 2018
当 item 等于 1或 2时执行各 自程 序 .因 为 这 时 item 只 能 通 过 按 下复 位 键 改 变 ,所 以不 按 下 复位 键 时 ,item的 值 固 定 。 可 以 无 限循 环 亮 灯 的 指 令。
按 下 复 位 键 .item 重 新 赋 值 为 0.可以重新对两个抢答按 钮 进 行 识 别 ,同时 关 灯 。这 样 将整个抢答器复位 。
40m m X 15m m
的 方 孔 作 为 电 源接 口(图 5)。
回目图图圈
抢答 器要 对 先按 下按 钮 的人 亮灯 ,所 以要 用 “如 果 ”程 序 判 断 A 和 B按 钮 哪 一 个 先 被 按 下 。 当其 中一个 按钮 被 按 下后 ,点 亮对 应 的 指 示 灯 ,且 当另一 个按 钮被 按 下后 不会 出现 响 应 ,为实 现这 一效 果 ,要使 程 序一 直 循环 亮灯 的指令 。当按 下复 位按 钮 时 ,两个 抢答 按钮 将 会 被 重置 ,所 以当按 下复 位按 钮后 要跳 出循 环 , 回到 判断 哪个按 钮先 被按 下 的程序 。
为 了 方便 新 手 学 习 ,本 案例 使 用 功 能 强 大 、易操 作 的 图形 化 编 程 软 件 Mixly编 写代 码 ,具 体 方 法 如 图 6和 图 7所 示 。 使 用 “重 复” 和 “跳 出循 环 ”指 令 摸 索 着 写 出 了图 6的程 序 , 再 经 简 化得 到 图 7所 示 的程 序 。

基于Arduino的无线抢答器设计

基于Arduino的无线抢答器设计

无线抢答器----电子设计与制作课程设计报告班级:11电信姓名:张巡胡盼学号:25 35指导教师:赵欣湖北轻工职业技术学院2013年4月23日目录目录 (2)引言 (3)一.基本原理 (4)1.1实验目的 (4)1.2实验要求和内容 (4)1.3实验器件 (4)二.基本流程图 (5)三.硬件模块 (6)3.1红外遥控与接收模块 (6)3.2 Arduino模块 (7)3.3 1602液晶显示模块 (7)四.实物图 (8)五.结论 (10)六.致谢 (11)七.参考文献 (12)八.附录 (13)引言进入21世纪越来越来多的电子产品出现在人们的日常生活中,从而形式多样的抢答器已广泛应用于企事业单位及商业机构,为各种智力和知识活动竞赛提供快速客观公正的裁决,逐渐成为一种商业性电子产品。

现有抢答器虽有多种设计方案,各具特色,但存在两点主要不足:其一,显示系统和抢答按键之间距离较远,连线多,结构复杂,安装不便;其二,当抢答路数增多时电路修改困难,扩展不便。

本文介绍了一种采用红外遥控技术和arduino实现的抢答系统,具有反应速序快、可靠性高和连线及扩展方便等特点。

本作品连接整个电路只用了7跟线,结构简单,只用了3个模块!一.基本原理1.1实验目的由arduino控制的红外遥控抢答系统组成,其控制核心是arduino,抢答按键中按键动作经红外发射电路编码后发出遥控信号,由红外接收电路将之译码输出,arduino对抢答信号裁决出最先按键者,最后由液晶显示系统将相应编号显示出来,同时要封锁对其他按键的继续响应。

1.2实验要求和内容(1)抢答器同时供4名选手或4个代表队比赛,分别用遥控器上的数字1,2,3,4表示。

(2)设置一个复位键控制开关,该开关由主持人控制。

(3)抢答器具有锁存与显示功能。

即选手按动按钮,锁存相应的编号,液晶显示屏上显示选手号码。

选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。

Arduino三路抢答器设计原理和设计想法

Arduino三路抢答器设计原理和设计想法

Arduino三路抢答器设计原理和设计想法设计原理
抢答器系统设计原理图如下所示。

当主持人宣布开始,定时电路开始秒脉冲电路的作用而进行倒记时,并通过译码器在显示器中显示。

报警电路给出声音提示。

当选手首先按某一开关键时,可通过触发锁存电路被触发并锁存,在输出端产生相应的开关电平信息,同时为防止其它开关随后触发而产生紊乱,最先产生的输出电平变化又反过来将触发电路锁定。

然后在译码器中译码,将触发器输出的数据转换为数码管需要的逻辑状态。

最后在显示电路中显示出所按键选手的号码。

若有多个开关同时按下时,则在它们之间存在着随机竞争的问题,结果可能是它们中的任一个产生有效输出。

设计想法
Arduino三路抢答器的设计想法是:通过抢答器上面的按键控制保证最先抢答的选手的按钮控制的电路正常运行,使主持人得到最先抢答的选手的序号,以此完成抢答排序。

Arduino入门到精通例程7-抢答器

Arduino入门到精通例程7-抢答器

Arduino入门到精通例程7抢答器设计实验完成上面的实验以后相信已经有很多朋友可以独立完成这个实验了,本实验就是将上面的按键控制小灯的实验扩展成 3个按键对应3个小灯,占用6个数字I/O接口。

原理这里就不多说了同上面实验,下面附上参考原理图和实物连接图。

-.rduiiiv IDUA RET D12Arduino t)] 1i):'lrm3d-d三pn-ssnui tuIA|)参考源程序如下:in t redled=10; int yellowled=9; int gree nl ed=8; int redp in=7;int yellowp in=6; int gree npin=5; in t red;int yellow;int gree n;WWW F *严Mu m巧F<C 孟end IV I] > g 3Ehvoid setup(){pinMode(redled,OUTPUT);pinMode(yellowled,OUTPUT);pinMode(greenled,OUTPUT);pinMode(redpin,INPUT);pinMode(yellowpin,INPUT);pinMode(greenpin,INPUT);}void loop(){red=digitalRead(redpin); if(red==LOW){ digitalWrite(redled,LOW);} else{ digitalWrite(redled,HIGH);}yellow=digitalRead(yellowpin); if(yellow==LOW) { digitalWrite(yellowled,LOW);} else{ digitalWrite(yellowled,HIGH);}green=digitalRead(greenpin);if(gree n==LOW){ digitalWrite(gree nled,LOW);}else { digitalWrite(gree nled,HIGH);}}此程序与前面程序除接口增多以外并无异处,因此不做程序注解分下载完程序,我们自己制作的简易抢答器就完成了。

基于单片机的无线抢答器设计-20082336041-陈莉 (1)

基于单片机的无线抢答器设计-20082336041-陈莉 (1)

滨江学院毕业论文(设计)题目基于单片机的无线抢答器设计院系自动控制系专业自动化学生姓名陈莉学号20082336041指导教师陈逸菲职称讲师二O一二年五月二十日目录1 引言 (1)2系统设计要求及方案论证 (2)2.1 系统的设计要求 (2)2.2 方案论证 (2)2.3 系统框图 (2)3 系统的硬件电路设计 (3)3.1主要芯片的选型及介绍 (3)3.1.1 STC89C52单片机 (3)3.1.2 LCD1602 (5)3.1.3 芯片PT2262和PT2272 (6)3.1.4 F05P和J04V模块 (9)3.2 单片机最小系统 (9)3.2 液晶显示电路 (10)3.3 发声、报警电路 (11)3.4 主控电路 (12)3.5 无线发射电路 (12)3.6 无线接收电路 (13)3.7 掉电保护电路 (14)4 系统的软件设计 (14)4.1 主程序设计 (15)4.2 定时器T0 50ms初始化 (15)4.3 主持人按键扫描 (16)4.4 主持人控制按键处理 (16)4.5 错误或报警提示 (17)5 系统仿真调试 (18)5.1 系统仿真实验电路图 (18)5.2 仿真调试与结果 (19)5.2.1抢答功能的调试 (19)5.2.2加减分功能的调试 (20)5.2.3时间设定功能的调试 (21)5.2.4犯规功能的调试 (22)5.3 实验小结 (23)6 实物调试结果 (23)7 结束语 (28)参考文献 (28)致谢 (30)ABSTRACT (31)附录1 系统电路原理图 (32)附录2 源程序代码 (33)附录3 元器件清单 (42)基于单片机的无线抢答器设计陈莉南京信息工程大学滨江学院自动化专业,南京 210044摘要:抢答器的实现方式有很多,可以采用模拟电路,数字电路或模拟与数字电路相结合的方式。

本设计利用STC89C52及外围接口实现抢答系统。

该系统由复位电路、晶振电路、掉电保护电路、无线发射电路、无线接收电路、液晶显示电路、主控电路以及发声电路组成。

Arduino实例 抢答器实验

Arduino实例  抢答器实验

实验:抢答器1、实验用到的电子器件:1.Arduino板 1个B下载数据线一根3.LED灯3个4.面包板一个5.杜邦线若干6.1k电阻3个7.四脚按键4个2.实验步骤:1)按如下接线方式连接:2)打开Arduino软件,点击上传按钮使得程序下载到板子上面。

3.程序代码int redLed=2;//定义板子上数字口2int yellowLed=3;//定义板子上数字口3int greenLed=4;//定义板子上数字口4int redKey=5;//控制红色LED的按键int yellowKey=6;//控制黄色LED的按键int greenKey=7;//控制绿色LED的按键int resetKey=8;//初始化控制按键void setup(){ pinMode(redLed,OUTPUT);//控制对应的口为输出模式pinMode(yellowLed,OUTPUT);//控制对应的口为输出模式pinMode(greenLed,OUTPUT);//控制对应的口为输出模式pinMode(redKey,INPUT_PULLUP);//控制对应的按键为输入模式pinMode(yellowKey,INPUT_PULLUP);//控制对应的按键为输入模式pinMode(greenKey,INPUT_PULLUP);//控制对应的按键为输入模式pinMode(resetKey,INPUT_PULLUP);//复位按键}void loop(){ if(digitalRead(redKey)==LOW)//判断控制红色LED的按键是否按下,按下小灯亮起RED();if(digitalRead(yellowKey)==LOW)//判断控制黄色LED的按键是否按下,按下小灯亮起YELLOW();if(digitalRead(greenKey)==LOW)//判断控制绿色LED的按键是否按下,按下小灯亮起GREEN();}void RED(){while(digitalRead(resetKey)==1)//判断reset按键是否按下,如果按下将跳出当前的while循环,进行clear()函数{digitalWrite(redLed,HIGH);//红色LED亮起digitalWrite(greenLed,LOW);//绿色LED熄灭digitalWrite(yellowLed,LOW);//黄色LED熄灭}clear();//熄灭所有小灯}void YELLOW()//判断reset按键是否按下,如果按下将跳出当前的while循环,进行clear()函数{while(digitalRead(resetKey)==1){digitalWrite(redLed,LOW);//红色LED熄灭digitalWrite(greenLed,LOW);//绿色LED熄灭digitalWrite(yellowLed,HIGH);//黄色LED亮起}clear();//熄灭所有小灯}void GREEN()//判断reset按键是否按下,如果按下将跳出当前的while循环,进行clear()函数{while(digitalRead(resetKey)==1){digitalWrite(redLed,LOW);//红色LED熄灭digitalWrite(greenLed,HIGH);//绿色LED亮起digitalWrite(yellowLed,LOW);//黄色LED熄灭}clear();//熄灭所有小灯}void clear(){digitalWrite(redLed,LOW);//红色LED熄灭digitalWrite(greenLed,LOW);//绿色LED熄灭digitalWrite(yellowLed,LOW);//黄色LED熄灭}在程序中while(digitalRead(resetKey)==1)这个代码是起到抢答的关键,该代码的作用是在抢答后只有按下复位按键才可以进行下次抢答,同时按其他按键没有反应。

数字抢答器设计实验报告

数字抢答器设计实验报告

数字抢答器设计实验报告一、实验目的本次实验的目的是设计一个数字抢答器,能够实现在一定时间内自动抢答的功能。

通过这个实验,我们可以了解数字电路的基本原理和应用,提高我们的动手能力和实践能力。

二、实验器材ArduinoUno控制板数字按键开关杜邦线若干面包板电源适配器LED灯蜂鸣器电阻若干电容若干电位器若干三、实验原理数字抢答器主要由ArduinoUno控制板、数字按键开关、LED灯、蜂鸣器等组成。

其中,ArduinoUno控制板是整个系统的核心,它可以通过数字输入输出端口与外部设备进行通信。

数字按键开关则用于接收用户的输入信号,LED灯和蜂鸣器则用于显示抢答结果和提示用户。

在实验中,我们将使用数字按键开关来模拟用户的抢答操作。

当用户按下某个数字键时,ArduinoUno控制板会读取该信号并进行处理。

如果此时系统处于抢答状态,则会触发LED灯闪烁和蜂鸣器发出声音,表示用户抢答成功;否则,系统会进入等待状态,直到下一个用户抢答为止。

四、实验步骤将数字按键开关连接到ArduinoUno控制板上的数字输入端口(D2-D10)。

具体连接方式如下:D2连接到GND引脚;D3连接到5V引脚;D4连接到A4引脚;D5连接到A5引脚;D6连接到A6引脚;D7连接到A7引脚;D8连接到3.3V引脚;D9连接到GND引脚;D10连接到GND引脚。

将LED灯和蜂鸣器分别连接到ArduinoUno控制板上的数字输出端口(D13和D11)。

具体连接方式如下:D13连接到5V引脚;D11连接到GND引脚。

将电源适配器插入电源插座,将面包板固定在ArduinoUno控制板上,然后将所有元器件按照电路图所示连接好。

注意不要接反或短路。

将ArduinoUno控制板通过USB线连接到电脑上,打开ArduinoIDE 软件。

点击“工具”菜单中的“上传”按钮,选择刚刚编写好的程序文件(例如:digital_answer_device.ino),点击“上传”按钮开始编译和下载程序。

Arduous 抢答器

Arduous 抢答器

Arduino 抢答器实验人员:罗云鹏卜荣凯陈诗斌实验任务和目的:开关单独连接,我们观察开关的按下抬起状态,然后控制LED点亮,控制蜂鸣器发声。

开关接GPIO13,LED和电阻串联接在GPIO12,蜂鸣器接在GPIO11,其他原件引脚全部接地。

实验条件:Arduino开发板,Arduino软件,面包板,LED灯一个,按键开关一个,蜂鸣器一个,导线若干等程序设计思路:将LED正极用跳线连接到面包板上,负极连接一个220Ω的电阻(其他阻值也行),然后通过一根跳线连接到Arduino的地端。

把按键开关的一端分别接上一根跳线,并且将这端都接在数字引脚12连上,蜂鸣器一端通过一根跳线连接另一端连接数字引脚10,与LED相连的一个电阻连接数字引脚11,这样电路就接好了。

实验总结和心得:亲手把实验做出来了,感觉挺好的,虽然只是一个小实验,但毕竟也是大家一起努力的成果,此次试验让我们懂得,原来 Arduino还是可以扫描电压的,这一次试验过后,我更加喜欢这一门课了,真的,Arduino真是太博大精深了,我们要走的路还很长。

代码const int SWITCH_INPUT = 12;const int LED = 11;const int BEEP = 10;const int BEEP_FRQ = 500;void setup() {pinMode(SWITCH_INPUT, INPUT_PULLUP);pinMode(LED, OUTPUT);pinMode(BEEP, OUTPUT);}void loop() {int pressed = digitalRead(SWITCH_INPUT);if (pressed == HIGH) {digitalWrite(LED, LOW);} else {digitalWrite(LED, HIGH);digitalWrite(BEEP, HIGH);delay(int(1000 / BEEP_FRQ));digitalWrite(BEEP, LOW);}}代码首先定义了使用的引脚,然后定义了蜂鸣器发出响声的频率。

Arduino创意设计:抢答器

Arduino创意设计:抢答器

Arduino创意设计:抢答器
闻豪;李守良
【期刊名称】《少年电脑世界》
【年(卷),期】2018(000)003
【摘要】“淀粉们”大家好,我们又见面了。

在举办一些比赛时,常常需要设计抢答环节,但是如果两个人同时举手,主持人分辨不出来谁先谁后,这时就要用到抢答器。

不过市面上的抢答器价格太贵(图1),这该怎么办呢?没关系,作为一个创客,这个问题难不倒我们。

【总页数】2页(P20-21)
【作者】闻豪;李守良
【作者单位】北京市中关村中学;北京市中关村中学
【正文语种】中文
【中图分类】TB47
【相关文献】
1.Arduino创意设计:智能Arduino小车(一)
2.Arduino创意设计:红外遥控小车
3.Arduino创意设计:智能灭火小车
4.Arduino创意设计:智能测温小车
5.基于Arduino+单片机的智能抢答器研究设计
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

无线抢答器
----电子设计与制作课程设计报告
班级:11电信
:巡胡盼
学号:25 35
指导教师:欣
轻工职业技术学院
2013年4月23日
目录
目录 (2)
引言 (3)
一.基本原理 (4)
1.1实验目的 (4)
1.2实验要求和容 (4)
1.3实验器件 (4)
二.基本流程图 (5)
三.硬件模块 (6)
3.1红外遥控与接收模块 (6)
3.2 Arduino模块 (7)
3.3 1602液晶显示模块 (7)
四.实物图 (8)
五.结论 (9)
六.致 (10)
七.参考文献 (11)
八.附录 (12)
引言
进入21世纪越来越来多的电子产品出现在人们的日常生活中,从而形式多样的抢答器已广泛应用于企事业单位及商业机构,为各种智力和知识活动竞赛提供快速客观公正的裁决,逐渐成为一种商业性电子产品。

现有抢答器虽有多种设计方案,各具特色,但存在两点主要不足:其一,显示系统和抢答按键之间距离较远,连线多,结构复杂,安装不便;其二,当抢答路数增多时电路修改困难,扩展不便。

本文介绍了一种采用红外遥控技术和arduino实现的抢答系统,具有反应速序快、可靠性高和连线及扩展方便等特点。

本作品连接整个电路只用了7跟线,结构简单,只用了3个模块!
一.基本原理
1.1实验目的
由arduino控制的红外遥控抢答系统组成,其控制核心是arduino,抢答按键中按键动作经红外发射电路编码后发出遥控信号,由红外接收电路将之译码输出,arduino对抢答信号裁决出最先按键者,最后由液晶显示系统将相应编号显示出来,同时要封锁对其他按键的继续响应。

1.2实验要求和容
(1)抢答器同时供4名选手或4个代表队比赛,分别用遥控器上的数字1,2,3,4表示。

(2)设置一个复位键控制开关,该开关由主持人控制。

(3)抢答器具有锁存与显示功能。

即选手按动按钮,锁存相应的编号,液晶显示屏上显示选手。

选手抢答实行优先锁存,优先抢答选手的编号一直保持到主持人将系统清除为止。

特点:安装方便,可随时拆装。

1.3实验器件
Arduino板一块
Lcd1602液晶一个
拓展板一块
遥控器四个
红外接收器一个
导线。

二.基本流程图
三.硬件模块
3.1红外遥控与接收模块
遥控器使用方便,功能多.目前已广泛应用在电视机、VCD、DVD、空调等各种家用电器中,且价格便宜,市场上非常容易买到。

如果能将遥控器上许多的按键解码出来.用作Arduino系统的输入.则解决了常规矩阵键盘线路板过大、布线复杂、占用I/O口过多的弊病。

而且通过使用遥控器,操作时可实现人与设备的分离,从而更加方便使用。

如下图
红外接收:接收电路是一种集成红外线接收和放大一体的一体化红外接收器模块,能够完成从红外线接收到输出与TTL电平信号兼容的所有工作,它适用于红外线遥控和红外线数据传输。

接收器做成的红外接收模块只有三个引脚,信号线,VCC,GND。

与arduino和其他单片机连接通信非常方便。

如下图
3.2 Arduino模块
Arduino 是一款便捷灵活、方便上手的开源电子原型平台,包含硬件(各种型号的arduino板)和软件(arduino IDE)。

它适用于艺术家、设计师、爱好者和对于“互动”有兴趣的朋友们。

Arduino能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境。

在这里我用它来解码,并分析,然后控制液晶显示。

如下图
3.3 1602液晶显示模块
该液晶显示器以其微功耗、体积小、显示容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。

这里介绍的字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、2行20个字等等。

如下图
四.实物图
本作品接线简单,实用方便。

五.结论
本次电子课程设计实习将理论与实践有机地结合,既考查了同学对理论知识的掌握程度,由反映了实际动手能力,更主要的是考查了同学对知识的综合运用以及创新设计思维能力,为今后的发展提供了一次良好的学习环境。

针对课设题目无线抢答器,一开始还没有头绪,不会运用所学知识进行有效设计,但通过上网查阅各种类似的设计,查阅所提供模块功能,确定基本设计方案和实际应用性,虽说比较烦杂但却对设计一个电路有了基本的经验。

同时也使自己认识到拿下每个课题能有一个非常清晰的设计思路是至关重要的。

只有对课题的充分理解,对各种器件的熟练掌握,勾画出基本的设计图是成功的关键,,必须多花时间在设计上才能为后续工作提供更扎实的基础,上网查询各种所需资料是至关重要的。

通过这次试验对Arduino板又有了更深的了解,也发现了他的用处之大。

当然在这次试验中也有很多不足之处,由于不细心有接线接错,程序出现调试错误。

在今后的试验中应该多加细心。

六.致
通过这次实训我们不仅加深了对理论的理解,将理论很好的运用到实际当中去,而且我们还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己,团队精神也是至关重要的。

创新可以是在原有的基础上进行改进,使之功能不断完善,成为自己真正的东西。

对于这次实训,最大的体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨的。

还有,在做人上,我们认识到,无论做什么事情上,只要足够坚强,有足够的毅力与决心,有足够挑战困难的勇气,就没有什么办不到的。

这次抢答器设计能顺利地完成,除了我们的努力外,当然也离不开指导老师老师的辛勤指导,致使我们在设计的过程中学到了很多实用性的知识。

同时,对给过我们帮助的所有同学和指导老师表示衷心的感!
七.参考文献
1..baidu.。

2.1602液晶使用说明。

3.arduino相关资料。

八.附录
主程序
#include <Wire.h> lcd.print(" 4 "); #include <IRremote.h> delay(20000000); #include <Wire.h> break; #include <LiquidCrystal_I2C.h> } int RECV_PIN = 11;//定义红外接收器的引脚为1 irrecv.resume(); // 接收下 IRrecv irrecv(RECV_PIN); 一个值 decode_results results; } LiquidCrystal_I2C lcd(0x20,16,2); } void setup() { Serial.begin(9600); irrecv.enableIRIn(); // 初始化红外接收器 lcd.init(); // initialize the lcd
// Print a message to the LCD. lcd.backlight(); lcd.print("start"); } void loop() { if (irrecv.decode(&results)) { switch (results.value) { case 0xFF18E7: //2 lcd.print(" 2 "); delay(2000000000); break; case 0xFF30CF://1 lcd.print(" 1 "); delay(200000000); break; case 0xff7a85://3 lcd.print(" 3 "); delay(200000000); break; case 0xff10ef:。

相关文档
最新文档