8*8*8光立方可不可以用9个74hc595arduino来做,不加电阻

查看: 1405|回复: 3
74HC595怎么不能让八个灯都亮,每隔一个灭一个,8个灯,只能亮四个,剩下四个有一...
求大神!!!代码如下
int data = 2;
int clock = 4;
int latch = 5;
int ledState = 0;
const int ON = HIGH;
const int OFF = LOW;
void setup()
pinMode(data, OUTPUT);
pinMode(clock, OUTPUT);
pinMode(latch, OUTPUT);
void loop()
int delayTime = 100;
for(int i = 0; i & 256; i++)
updateLEDs(i);
delay(delayTime);
void updateLEDs(int value)
digitalWrite(latch, LOW);
shiftOut(data, clock, MSBFIRST, value);
digitalWrite(latch, HIGH);
同样的问题,也是隔一个亮一个,无法完全点亮,求大神指导啊~
本帖最后由 マイナス37度 于
21:58 编辑
帮你查了下74,他是需要一组8位2进制数来控制的,比如数等于那么只亮一盏led,要8盏全亮只要输入这个二进制数就行了,等于十进制的255,那么i的取值是对的,亮4盏的原因可能是线路的问题,这玩意吃透了很简单的,看你同样是初学者才讲这么多,希望能帮到你吧
shiftOut(dataPin, clockPin, bitOrder, value)
dataPin:输出每一位数据的引脚(int)
clockPin:时钟脚,当dataPin有值时此引脚电平变化(int)
bitOrder:输出位的顺序,最高位优先或最低位优先
value: 要移位输出的数据(byte)
你这个程序就是能亮256种状态的
Powered by为什么我的光立方制作用到了9个74HC595?电路图是同学的,我看不懂?网上好像都是用573,好像只用到8个。_百度知道
为什么我的光立方制作用到了9个74HC595?电路图是同学的,我看不懂?网上好像都是用573,好像只用到8个。
光立方的制作...
光立方的制作
答题抽奖
首次认真答题后
即可获得3次抽奖机会,100%中奖。
采纳数:238
获赞数:347
两个都可以,就是程序的写法就不一样了,另外74H595是在你IO角不够的情况下使用的,573是IO角富裕的情况下,使用的
o墨守城规o
o墨守城规o
擅长:暂未定制
有资料吗?电路图和程序可以给我份吗?
1条折叠回答
为你推荐:
其他类似问题
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。n个74HC595驱动8n个继电器。在avr复位期间怎么保证继电器不误动作
搜遍了论坛看了有这个在avr上电复位期间74hc595输出随机数据。这个比较麻烦。那位兄弟有实际的操作经验。交流一下。我的74HC595驱动一个三极管。三极管驱动继电器。小继电器。信号继电器12v动作,电流20ma不到。
以前是控制总的电源了!有过类似的经历!
哦 没其他办法 有什么好办法 控制总电源
上电时锁住OE,延迟一段时间后放开。
试试这样行不行:三极管基极并联合适的电解电容到地,单片机上电初始化后先发送数据使595输出为零。
估计一个试不出来效果吧 要不自己焊个万能板试试。手头有板的也可以试试
上电时锁住OE,延迟一段时间后放开。 怎么锁????
采用低电平导通的pnp的三极管驱动继电器是不是安全点。
595的“OE”脚为高电平时,输出呈高阻。
可用个单稳或简单的RC,复位时让OE为高,复位结束后延迟一段时间变低。
借8楼图一用。
AVR的一个I/O接OE,OE接一个5K到VCC。AVR上电过程中I/O为输入高阻态,OE由5K电阻拉高,595的输出也是高阻三态。
595的每个输出接10K到地,上电期间,由于OE为高,595输出高阻三态,但被10K拉低,不能驱动后面的三极管。
上电初始化后,AVR串出8个0,然后控制OE为低电平。595输出全部为0,继电器不会动。
后面进入正常控制。
如果595的控制线距离有10米,控制继电器的个数有约100个,这样的工作能够稳定可靠吗?
595控制线为10米要加驱动的
可以先供595的电源,然后供继电器的电源
信号继电器的速度要快过单片机复位后的第一件事:初始化IO并给与确定电平?
应该是的,这样才能保证可靠。为了控制1000多个继电器。
machao老师这个办法可靠不。加上拉下拉电阻,在初始化的时间给一个确定的电平。
为驱动这个1000个继电器。我会48个继电器用一个单片机控制,然后组网来控制。联网用485比较好点。每个分机总线控制595的都用245做驱动。
最原始的方法,继电器供电电源加缓起动,延时N ms通电。
最可靠的方法,控制电路段串个铁电状态保持器!
还是加电阻最简单。
加一个上电时序控制芯片,
machao 的方法是最好的.我感觉.
我是要做板子实验一下这个办法。控制1024个继电器玩玩。
【23楼】 fugeone&&你用过了 驱动继电器 上电不会乱跳继电器。
①.9楼machao老师的方法是很可靠的,由CPU控制等所有位清零之后再放开OE。
②.俺在8楼的图是考虑了处理器和被控的595离得较远,其间连线希望尽可能少的情况,于是在本地处理OE,但R、C简易做法不太适合于可靠性要求高的场合。
不过,上述两种做法都可能遇到一个问题,即假如收发分为两处,而且两处可能不同时上电时,OE处理无效。如是这种情况,推荐用另一种办法:再加一个D触发器芯片,如74、273等,4020也可以。
③.仍沿用收发间不加线,在本地处理OE的做法。但RC只是复位D触发器,然后把给595的锁存信号作为D触发器的时钟,使之至少收到2次锁存之后再打开OE。
我根本没有考虑长距离的控制应用。因为我决不会使用5V逻辑电平的传送方式应用在长距离的系统中,尤其是工业控制系统中!
参考一下RS232吧,与UART的通信逻辑相同,但采用+-15V的负逻辑,而且也就几十米,距离越远,还要bps越低。
再远就要使用差分方式传送的RS485了。
UART ==》 RS232 ===》RS485,为何?
我这个控制继电器的板子和单片机的板子是分开的,但是距离不远,最远不超过10米。输出我要加245做驱动。应该问题不大。
拉10米的线,应优先考虑光耦。
8楼的图是很实用的,虽然不能完全解决,偶尔还是有轻微的抖动,但是效果是最明显的。
不用那么复杂。74HC595不是有个异步清除引脚SRCLR吗?把这个引脚接到AVR的一个脚上,并用一个10k下拉电阻接地,OE可以直接接地。
AVR复位期间,引脚呈现高阻态,这时候,RCRCLR被下拉电阻强制拉低,74HC595内部寄存器被异步清除,Q0-Q7输出统统强制为0,它们所驱动的三极管基极电平为0,进入截止状态,自然继电器就不会动作了。
AVR复位完成后,初始化程序将引脚设定为输出,然后驱动RCRCLR为高电平&1& ,异步清除信号解除,74HC595就可以正常驱动了。这个方法电路简洁,省去了595每个输出脚上的下拉电阻。而且,三极管是被595强驱动导致截止的,比下拉电阻产生的弱下拉产生的截止更可靠;同时,595上电后的状态为确切的0,也省去了软件设置初始状态的工作
楼上未考虑2个问题:
1、SRCLR引脚只对第1级触发器清零,却不能清除第2级(如图)。
2、看楼主的意思是想拉较远的距离(10m)呢,用什么信号连接尚不清楚,处理器和595之间与其加臃肿的连线,还不如多用个便宜的器件在本地解决。
要用74HC594他两级的移位寄存器都带了清理端子。我的电路基本搞好了。请大家指点一下。
(原文件名:a.JPG)
信号VIN是给继电器用的。IN是来自74HC595的。74HC595的OE端子加了上拉电阻。继电器控制板的电路如下:
点击此处下载
(原文件名:relay.pdf)
上面的继电器板会级联起来。6个板子一组。会有一个单片机来驱动它们。单片机通过485接口和主机联系起来。
电源处理得不错。
基极串330Ω阻值似偏小了点,让595活得好累。
远距离传送俺仍旧认为用光耦或差动较合适些,你这可是没有校验的,只要错一位继电器就乱套了。
TPIC6B595这个芯片怎么样?我查了下大概3.5元一片,如果性能比74HC595好,那还不如用TPIC6B595省心
TPIC6B595会比较好,我要用几百个。估计价钱不错。对哦 。我的通讯协议会加上crc16的。我那个原理图电源有问题的。给继电器供电的12v没经过二极管,我应该改了原理图。我的继电器一个时刻就一个导通,电流不大。我把所有的OE信号都处理了一下。从机出来的信号都加上上拉电阻。
学习了!!!
12楼兄弟正解!
之前遇到过同样的问题,阅贴收获不少,mark,mark!
8楼的方法应该可行
信号传输应该用光电隔离,继电器的驱动做在远端的继电器这边。
换成 74HC594,加个上电复位电路,不就行了嘛
不用什么延时电路,先确定avr的启动输出电平是高还是低,不要去尝试改变这个电平,你改变他,就意味着有电平变化,就会误动作。只需控制所有595的oe脚电平,这个电平为低就输出,所以保证oe脚为高不管其他引脚如何变化,都不会有输出的。然后看avr电平启动如果是高就不用改变,等待正常只需再去改变输出电平,如果为低,就直接硬件加非门的电路,比如4069,启动时输出低,非门反向是高,595的oe就一定是高了,为高阻,绝对不会输出,其他引脚电平可以不去理睬了,怎么变化都是高阻,只是正常运行后要输出595,就要对所有输出进行一次复位后再输出。我实际应用时的做法相当有效,没有使用rc电路。
setting OE doesn't work as it puts the output into tri-state -& depending on your driver set-up, the relays will most likely change state.
the right approach is to lock in the storage register: by holding it low during power transitions. With this approach, whatever state was previously in the shift register is preserved and the output drivers will not change state.
技术贴 收藏
实际应用 :
【8楼】 holycat 仙猫 的方法很管用,但是100K 好像小了点,还是有误动作,换成200K。。。非常好用
Mark! 学习了!!!!!!
标记,学习一下。
楼上未考虑2个问题:
1、SRCLR引脚只对第1级触发器清零,却不能清除第2级(如图)。
2、看楼主的意思是想拉 ...
我明白他的意思,它强制复位595内部移位寄存器,当上电电压上升时,相当于进行了一次锁存输出,这样的话Q0-Q7就是拉低了
想法应该不错,可能不是最可靠的办法,最可靠的还是OE脚控制办法,但是这样就多了一个io口占用
我现在就打算这么用了,rst端阻容复位的用在led显示这种地方,oe端控制的就用在绝对保证无误的地方。我的应用中需要先释放显示控制,初始化后才开关键输出
我明白他的意思,它强制复位595内部移位寄存器,当上电电压上升时,相当于进行了一次锁存输出,这样的话Q ...
挖坟啊兄弟
借8楼图一用。
AVR的一个I/O接OE,OE接一个5K到VCC。AVR上电过程中I/O为输入高阻态,OE由5K电阻拉高,595 ...
对用上这个OE
也遇到这个问题,好像比较容易干扰
阿莫电子论坛, 原"中国电子开发网"
, 原www.ourdev.cn, 原www.ouravr.com利用2片74HC595驱动8个数码管显示_百度文库
您的浏览器Javascript被禁用,需开启后体验完整功能,
享专业文档下载特权
&赠共享文档下载特权
&100W篇文档免费专享
&每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
利用2片74HC595驱动8个数码管显示
阅读已结束,下载本文需要
定制HR最喜欢的简历
你可能喜欢【求助】我用74HC595驱动8*8点阵屏为什么会出现这样的情况啊??【单片机吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:150,853贴子:
【求助】我用74HC595驱动8*8点阵屏为什么会出现这样的情况啊??收藏
才学单片机,真心求助,我想了半天也不知道为什么。问题是这样的:
我仿真的时候,点阵屏是按照我的程序亮灭的。但是到了实物上就根本是乱的。
然后我就干脆让它全亮了。可是我每次重新上电,它都会从最后一列开始熄一列,这是为什么啊??这是程序:就让它全亮# include &reg52.h&# define uint unsigned int# define uchar unsigned charsbit ds=P2^2;sbit sck=P2^0;sbit rck=P2^1;void delay(uint x){while (x--);}void datesend595 (uint dat){for(i=1;i&=8;i++){if(dat&0x01)ds=1;else ds=0;dat&&=1;sck=0;delay(10);sck=1;
}rck=0;delay(10);rck=1;}void main (void){while (1){P1=0x0;datesend595(0xFF);delay(50000);}}
实物的点阵屏检查了很多遍我没有接错,因为它的确全亮了的。问题就是为什么每上电一次就会灭一列啊????
大神们啊。。。。我很着急
我查了一天的百度了,,,没找到答案才问的
软件好像没啥问题,硬件我也不知道哪个接行哪个接列。只能用万用表测引脚看看该高的是不是高的,该低的是不是低的。然后撤掉点阵屏看看不带负载情况下怎样。如果是被负载拉低等情况,或者加个上拉电阻试试。我就曾遇到过单片机控制单元板,然后lineA被拉低,接个上拉电阻就能显示了。
P1=0x0?555
我也遇到了麻烦,我和楼主做了一样的东西,可是我的有两排不亮了,不知道楼主,问题解决了吗?两个595的11脚,和12脚是否要连到一起啊?
我遇到的问题一样 没法解决
总是要黑一行
先看清楚硬件怎么接的
登录百度帐号}

我要回帖

更多关于 74hc595arduino 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信