我正在尝试为 arduino 制作秒表和计数器项目。除了代码,这接线正确吗?
上面的按钮是启动秒表,第二个是启动计数器的按钮(每按一次就增加一个),下面的按钮应该是重置它们中的任何一个。绿灯表示已选择秒表,蓝色表示已选择计数器。液晶显示器是为了清楚地显示一切。另外,学习编码的最佳方法是什么,需要多长时间?谢谢。
我正在尝试为 arduino 制作秒表和计数器项目。除了代码,这接线正确吗?
上面的按钮是启动秒表,第二个是启动计数器的按钮(每按一次就增加一个),下面的按钮应该是重置它们中的任何一个。绿灯表示已选择秒表,蓝色表示已选择计数器。液晶显示器是为了清楚地显示一切。另外,学习编码的最佳方法是什么,需要多长时间?谢谢。
这是根据您的要求的代码。我已经按照上述连接定义了引脚。计数器模式有分钟和秒,它不包含毫秒,因为我遇到了实现它的问题。如果你有任何方法,你可以建议我。计数器模式选择按钮与将用于递增计数器的按钮相同。
#include <LiquidCrystal.h>
LiquidCrystal mylcd(7,6,5,4,3,2);
int counter_sel=12,stopwatch_sel=11,reset1=10,stopwatch_led=9,counter_led=8;
void setup()
{
mylcd.begin(16,2);
mylcd.setCursor(0,0);
mylcd.print("Counter and ");
mylcd.print("Stopwatch");
delay(1000);
pinMode(counter_sel,INPUT);
pinMode(stopwatch_sel, INPUT);
pinMode(reset1, INPUT);
pinMode(counter_led,OUTPUT);
pinMode(stopwatch_led, OUTPUT);
}
void loop()
{ int state1=digitalRead(counter_sel);
int state2=digitalRead(stopwatch_sel);
if (state1==0) {delay(300); counter(); } // call counter function
else if (state2==0) {delay(300); stopwatch(); } // call stopwatch function
}
void counter()
{ mylcd.clear();
digitalWrite(counter_led,1);
mylcd.setCursor(0,0);
mylcd.print("Counter Mode :");
short int i=0;
while(1)
{
int rst=digitalRead(reset1);
if (rst==0) { delay(300); break;}
int state1=digitalRead(counter_sel);
if (state1==0) { i++; delay(200);}
mylcd.setCursor(0,1);
mylcd.print(i);
}
digitalWrite(counter_led,0);
}
void stopwatch()
{
mylcd.clear();
digitalWrite(stopwatch_led,1);
long int ms=millis();
byte sec=0, mins=0;
mylcd.setCursor(0,0);
mylcd.print("Stopwatch Mode : ");
while(1)
{
mylcd.setCursor(0,1);
int state1=digitalRead(reset1);
if (state1==0){delay(300); break; }
if (sec==59) {mins++; sec=0;}
if ((millis()-ms)>1000) {sec++; ms=millis(); }
mylcd.print(mins);
mylcd.setCursor(3,1);
mylcd.print(":");
mylcd.setCursor(5,1);
mylcd.print(sec);
mylcd.print(":");
//mylcd.print(millis()-ms);
}
digitalWrite(stopwatch_led,0);
}
据我所知,考虑到您上面解释的内容,连接是正确的。但问题是你需要尽可能地说清楚,因为由于LCD连接中有交叉点,调试和解决连接问题会非常困难,因为你必须让它整洁。要学习编写这些东西,没有火箭科学,只需运用你的智慧,然后开始阅读书籍、博客、关于 arduino ide(太简单太容易使用)、c 编程和微控制器的文章,以及 youtube 视频是很好的来源学习编码,你应该有少量的c编程经验,仅此而已。