|
|
我想自己做一个测电阻的,我想加两个按键,按键功能是按下开始读电阻并且显示屏显示,另一个按键是按下时保持当前数字。
/***********显示参考程序**************/
/*
作用:当你按下按钮后1秒钟,灯会亮,然后维持5秒钟,熄灭
*/
void setup ()
{
pinMode(13,INPUT); //将4号数字口设置为输入状态,13号数字口设置为输出状态
pinMode(2,OUTPUT);
}
void loop()
{
int n =digitalRead(13); //创建一个变量n,将4号数字口的状态采集出来赋值给他。
if (n==HIGH) //判断n是否为高电平,如果是执行下面的语句,不是则跳过。
{
delay(1000);
digitalWrite(2,HIGH);
delay(50000);
digitalWrite(2,LOW);
}
}
/*************测电阻且1602屏输出程序*********/
#include <LiquidCrystal.h>
#define N 20
#define basis 1000.0
LiquidCrystal lcd(3,4,5,9,10,11,12) ;
int potpin = A4;
float val, r;
unsigned int val1, r1;
void setup()
{
Serial.begin(9600);
lcd.begin(16, 1);
delay(10);
lcd.clear();
}
void loop()
{
val = analogRead(potpin);
val1 = val;
r = ((basis * 1023.0) / (1023.0 - val)) - basis;
r1 = r;
Serial.print(" R: ");
Serial.print(filter());
Serial.println(" K ohm");
lcd.print(" R: ");
lcd.print(filter());
lcd.println("K ohm");
}
//mathematic average filter
int filter()
{
int sum = 0;
for (int count = 0; count < N; count++)
{
sum += r;
delay(50);
}
return (int)(sum / N);
}
这个程序的问题是屏的输出在移动。我好郁闷 |
|