Arduino 使用74hc595(换档)的控制继电器

Arduino 使用74hc595(换档)的控制继电器,arduino,Arduino,我想使用7h4c595(8个IOs)控制8个继电器。 我试过使用0b0000000,效果很好 但是我不知道如何将值转换成这种二进制文件 几乎没有关于这方面的知识。对不起 我知道下面的代码不正确,但似乎有效 问题:74hc595的q0控制的是第二个继电器,而不是第一个继电器 q1控制第三继电器 它应该像q0->1st,q1->2nd,等等 很抱歉打扰您。 [守则] uint8_t switch0=0;// 0 = off uint8_t switch1=1;// 1 = on etc... ui

我想使用7h4c595(8个IOs)控制8个继电器。

我试过使用0b0000000,效果很好

但是我不知道如何将值转换成这种二进制文件

几乎没有关于这方面的知识。对不起

我知道下面的代码不正确,但似乎有效

问题:74hc595的q0控制的是第二个继电器,而不是第一个继电器

q1控制第三继电器

它应该像q0->1st,q1->2nd,等等

很抱歉打扰您。

[守则]

uint8_t switch0=0;// 0 = off
uint8_t switch1=1;// 1 = on
etc...
uint8_t switch7=1;//1-7 on

setup(){
    etc...
}
loop(){
    if(digitalWrite(btn1)==HIGH){
        switch0=1;//on
        switch1=0;//off
        etc...//1-7 off
    }
    //unit8_t sw=0b10000000; //turn 1st relay on when btn1 pressed
    uint8_t sw={switch0,switch1,....,switch7};
    for(int i=0;i<8;i++){
        digitalWrite(latchPin, LOW);
        shiftOut(dataPin, clockPin, MSBFIRST, i);   
        digitalWrite(latchPin, HIGH);
    }
}
uint8\u t开关0=0;//0=关
uint8\u t开关1=1;//1=开
等
uint8_t开关7=1//1-7日
设置(){
等
}
循环(){
if(数字写入(btn1)=高){
开关0=1;//打开
开关1=0;//关闭
等等//1-7关
}
//unit8\u t sw=0b10000000;//按下btn1时打开第一个继电器
uint8_t sw={switch0,switch1,…,switch7};

对于(inti=0;i我将以类似的方式进行,在avr/io.h中如何定义管脚

constexpr uint8_t RELAY0 = 0;
constexpr uint8_t RELAY1 = 1;
// ...
constexpr uint8_t RELAY7 = 7;


loop() {
  uint8_t data = (switch0 << RELAY0) | (switch1 << RELAY1) | /* ... |*/ (switch7 << RELAY7);

  digitalWrite(latchPin, LOW);
  shiftOut(dataPin, clockPin, MSBFIRST, data);   
  digitalWrite(latchPin, HIGH);

  delay(200); // or more
}

我猜你问的是错误的论坛。接线图可能会有帮助。谢谢你的提示,接线图现在添加了hanks!如何搜索?你的代码语法,我想从头开始学习D@xtr3mz那么举个例子,
uint8_t allSwitches = 0; // all relays disabled 

// turning relay x on (somewhere inside of function):
allSwitches |= _BV(x); // where x is number between 0 and 7 including

// turning relay x off:
allSwitches &= ~_BV(x);

// but you can set some of them and reset others in single step:
allSwitches = _BV(0) | _BV(5) | _BV(7);  // turns on relay 0, 5 and 7, rest will be turned off