IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> Arduino基础(二) -> 正文阅读

[嵌入式]Arduino基础(二)

简介? ? ? ??

? ? ? ? Arduino是一个面向嵌入式系统的开源开发环境。它将硬件和软件开发工具结合在一个易于使用的软件包中,主要面向教育、爱好者和DIY爱好者。

此处附上网址:https://www.arduino.cc?

? ? ? ?这是一门使用Arduino平台开发实时和嵌入式系统的实践课程。本课程采用构造方法开发集成电子硬件、微控制器、软件和传感器的简单系统。

实训-Lab

任务1

显示温度

编写程序从MP36模拟温度传感器读取温度F.? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

原始模拟ADC值与计算温度之间存在线性关系,如以下等式所述。y=(0.49*x)-50.0其中(y)是温度,In degree Cand(x)是模拟输入信号的原始ADC值。

任务2

显示报警限值[30Marks]在此任务中,开发先前的程序,从图1所示的两个电位计读取两个模拟输入信号。高报警(pot1)的范围为(40->90℃),低报警(pot2)的范围为(40->90℃)温度范围(5->15摄氏度)。要计算这些标度值,请使用Arduino map()函数。然后在LCD的底部显示报警设置点值.

任务3 LED温度报警

在本任务中,开发上一个程序,在温度高于高报警设置点时打开红色LED报警,并在以下情况下打开蓝色LED报警温度低于低报警设定值.

任务4测试LED

在解决方案的最后一部分中,开发程序以允许按钮(SW1)进入“测试报警LED”状态。在该状态下,LED将持续闪烁至少一次或更快。当第二次按下按钮时,LED将停止闪烁。

代码质量:LED的质量提交的代码很重要,将为变量名、注释、缩进、空白和对齐分配标记。请尽一切努力提交整洁、结构良好、易于阅读和遵循的代码。提交的代码必须在没有编译错误的情况下运行.?

//完整代码
// C++ code
//
#include<LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);

void toggle_state();
void led_flash();
void led_noflash();

#define temSen A0
#define pot1 A1  //low
#define pot2 A2  //high
#define sw1 A5
#define redLED 6
#define blueLED 7

int raw_temp_value;
int raw_pot1_value;
int raw_pot2_value;

bool led_state;

int blankLCD;//1 is blank

void setup()
{
  //causion
  lcd.begin(16,2);
  pinMode(redLED,OUTPUT);
  pinMode(blueLED,OUTPUT);
  pinMode(sw1,INPUT);
  pinMode(temSen,INPUT);
  
  //initial
  blankLCD=0;  
  
}
  
void loop()
{  

  raw_temp_value=analogRead(temSen);
  raw_pot1_value=analogRead(pot1);  //low
  raw_pot2_value=analogRead(pot2);  //high
    
  
  
  raw_temp_value=(0.49*raw_temp_value)-50.0;
  raw_pot1_value=map(raw_pot1_value,0,1023,5,15); //map()
  raw_pot2_value=map(raw_pot2_value,0,1023,40,90); //map()
  
  
  
  //high alarm
  if(raw_temp_value> raw_pot2_value)
  {
    digitalWrite(redLED,HIGH);
  }
  else
  {
    digitalWrite(redLED,LOW);
  }
  
  //low alarm
  if(raw_temp_value< raw_pot1_value)
  {
    digitalWrite(blueLED,HIGH);
  }
  else
  {
    digitalWrite(blueLED,LOW);
  }
   
  

  lcd.clear();
  if(blankLCD==0)
  {

  lcd.setCursor(0,0);
  lcd.print("Temp: ");
  lcd.print(raw_temp_value);
  lcd.print("C");
  
  
  lcd.setCursor(0,1);
  lcd.print("Hi:");
  lcd.print(raw_pot2_value);
  lcd.print("C");
  
  lcd.setCursor(9,1);
  lcd.print("Lo:");
  lcd.print(raw_pot1_value);
  lcd.print("C");
  }

  
  //delay
  delay(200);
  
  //control sw1
  toggle_state();
  if(led_state==true)
  {
  
    if(digitalRead(sw1)==HIGH)
    {
      led_flash();
    }
  }
  
  else
  {
  if(digitalRead(redLED)==HIGH||digitalRead(blueLED)==HIGH)
  {
  
  }
  else
  {
  led_noflash();
  
   }
 } 
}  
  
  //new function

 
  void toggle_state()
  {
  
   if(digitalRead(sw1)==LOW)
   {
     if(led_state==false)
     {
     led_state=true;
     }
     else
     {
     led_state=false;
     }
     delay(300);
   }
  
}
   
 void led_flash()
 {
   digitalWrite(redLED,HIGH);
   digitalWrite(blueLED,HIGH);
   delay(300);
   digitalWrite(redLED,LOW);
   digitalWrite(blueLED,LOW);
   delay(300);
 }
  
  
 void led_noflash()
 {
  
  digitalWrite(redLED,LOW);
  digitalWrite(blueLED,LOW);
  
 }

如有错误,恳请指正!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-01 12:05:12  更:2021-09-01 12:06:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:41:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码