程序继电器问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 638|回复: 7

[未解决] 程序继电器问题

[复制链接]
发表于 2022-7-2 21:19 | 显示全部楼层 |阅读模式
??????????

我这里又双叒叕变天了。。。
(大无语好吧
写了一个程序,一切正常
各位大佬能不能帮个忙,看一下是什么让继电器一直在开和关中“止步不前”
(想想一个开关,被程序搞得开关开关开关开关......viod loop(无限循环PS我对了吗))
程序
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
Servo myservo;
LiquidCrystal_I2C mylcd(0x3F ,16,2);
int pos=0;
int at1=13;
int at2=12;
int at3=11;
int at4=10;
int beep=8;
int aj1;
int aj2;
int aj3;
int aj4;
void setup()
{
pinMode(2, OUTPUT);
pinMode(at1, INPUT);
pinMode(at2, INPUT);
pinMode(at3, INPUT);
pinMode(at4, INPUT);
mylcd.init();
mylcd.backlight();
myservo.attach(9);
mylcd.setCursor(0, 0);
mylcd.print("fan off ");
mylcd.setCursor(0, 1);
mylcd.print("shark off");
}
void loop()
{
aj1=digitalRead(at1);
aj2=digitalRead(at2);
aj3=digitalRead(at3);
aj4=digitalRead(at4);
if (aj1==HIGH)
{
  mylcd.setCursor(0, 0);
  mylcd.print("fan on ");
  digitalWrite(2,HIGH);
}
if (aj2==HIGH)
{
  mylcd.setCursor(0, 0);
  mylcd.print("fan off ");
  digitalWrite(2,LOW);
}
}
看看吧 求求你们了



















我的风扇

我的风扇
 楼主| 发表于 2022-7-2 21:33 | 显示全部楼层
我补充一下,我是想做一个按键持续开风扇,另外一个按键关上,这段该怎么弄?
新手上路,问题多多,感谢包容
发表于 2022-7-2 21:36 | 显示全部楼层
if (aj1==HIGH &&  digitalRead(2) != HIGH)
{
  mylcd.setCursor(0, 0);
  mylcd.print("fan on ");
  digitalWrite(2,HIGH);
}
if (aj2==HIGH &&  digitalRead(2) != LOW)
{
  mylcd.setCursor(0, 0);
  mylcd.print("fan off ");
  digitalWrite(2,LOW);
}
 楼主| 发表于 2022-7-2 21:38 | 显示全部楼层
解释一下好吗
小白看不大懂
 楼主| 发表于 2022-7-2 21:42 | 显示全部楼层
而且还是不行诶
继电器老样子
我闻到烧焦味了......
发表于 2022-7-2 23:05 | 显示全部楼层
從那堆線真看不出你的線路到底是怎麼接的...

個人給些建議::
1.按鈕採接地觸發型式,pinMode指令改為
  pinMode(at1, INPUT_PULLUP ); 這樣的指令,
  當開關閒置時內部上拉電阻會讓 I/O 讀到 HIGH,
  你改判定開關是否讀取到 LOW=已觸發

2.定下優先權,比方說開關A、B若同時被按下時
  哪邊優先執行? 因為一個要開一個要關很容易互斥,
  把優先權高的條件先定下,再用"else if"指令,當優先
  權高的條件不成立時再判定優先權低的部份,若
  優先高的條件有成立就跳過判定優先權低的部份

3.請考慮按鍵"接點彈跳"的問題,條件成立後先
  delay(50); 停個 50ms 再進行繼電器驅動

p.s.若你非得要按鍵用 HIGH 觸發的話,按鍵最好
  接下拉電阻,當開關閒置時讓 I/O 處於 LOW 狀態
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-30 23:52 , Processed in 0.150835 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表