极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18872|回复: 2

...cd4017BE如何连接arduino才对.....

[复制链接]
发表于 2014-10-15 19:00:26 | 显示全部楼层 |阅读模式
本帖最后由 openmmoo 于 2014-10-20 16:15 编辑

请各位瞧一瞧,错在那里了,接通干簧管,串口收到的都是1,不接通干簧管,串口收到的都是0,如下图.

我用的是cd4017,它的参数如下:

引出端功能符号
CO:进位脉冲输渊
CP:时钟输入端
CR:清除端
INH:禁止端
Q0-Q9 计数脉冲输出端
VDD:正电源
VSS:地
真值表
输入输出
CP INH CR Q0-Q9 CO
× × H Q0
↑ L L
H ↓ L
计数
计数脉冲
为Q0-Q4
时:CO=H
L × L
× H L
↓ × L
× ↑ L
保持
计数脉冲
为Q5-Q9
时:CO=L

cd4017各引脚的作用
1~7,9~11共十个引脚为其计数脉冲输出端、8引脚接地、12引脚为进位输出端(每输入10个计数脉冲,就可得到1个进位正脉冲,该进位输出信号可作为下一级的时钟信号)、13和14引脚皆为时钟输入端(若要用上升沿来计数,则信号由14端输入;若要用下降沿来计数,则信号由13端输入)、15引脚为清零端(当在此端上加高电平或正脉冲时其输出3端为高电平,其余计数脉冲输出端均为低电平),16引脚为电源正端。

我的连线图


我的代码:
const int rst = 5; //板子的RST脚接Arduino的D4口(自定义)
const int clk = 6; //板子的CLK脚接Arduino的D3口(自定义)
const int data1 = 7; //板子的DATA脚接Arduino的D2口(自定义)
//const int data2 = 5; //如果有第二块板子的话,两块板子共用RST和CLK引脚。DATA接Arduino的D5口,第三块板子可以类推接D6口(自定义)
void setup()
{
Serial.begin(9600);
pinMode(rst, OUTPUT);
pinMode(clk, OUTPUT);
pinMode(data1, INPUT);
//pinMode(data2,INPUT); //如果有第二块板子的话要定义IO
}
void loop()
{
int KeyStatus[10] = {0}; //按照总开关数定义。可能要改为20,30等
digitalWrite(rst, HIGH);
delayMicroseconds(10); //所有delayMicroseconds(10);均是给4017一个反应时间。
digitalWrite(rst, LOW);
delayMicroseconds(10);
for(int i = 0; i < 10; i++)
{
KeyStatus = digitalRead(data1);
//KeyStatus[i+10] = digitalRead(data2); //读取第二个板子的状态,地址放在i+10
digitalWrite(clk, HIGH);
delayMicroseconds(10);
digitalWrite(clk, LOW);
delayMicroseconds(10);
}

for(int i = 0; i < 10; i++) //循环打印KeyStatus数组,i<10可能要改为i<20,30等
{
Serial.print(KeyStatus);
Serial.print("\t");
}
Serial.println();
delay(100);
}

错在那里了{:soso_e127:}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-6-15 18:59:31 | 显示全部楼层
问题解决了吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-21 16:09:50 | 显示全部楼层
没有,放他了,直接用stc芯片
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-7 19:21 , Processed in 0.062938 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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