好吧,我正在尝试驱动一个基于7段的显示器,以便以摄氏度为单位显示温度。因此,我有两个显示器,加上一个额外的LED来指示正数和负数。
我的问题出在软件上。我必须找到某种方法来驱动这些显示器,这意味着将给定的整数转换为引脚上的相关电压,这意味着对于两个显示器中的每一个,我都需要知道整数中的十的数量和1的数量。
到目前为止,我想出的东西对于arduino来说并不是很好,因为它依赖于除法。
tens = numberToDisplay / 10;
ones = numberToDisplay % 10;诚然,我还没有测试过这一点,但我想我可以假设,对于除法能力有限的微控制器来说,这不是一个最佳的解决方案。
我绞尽脑汁,到处寻找使用加/减/位的解决方案,但我根本想不出一个解决方案。这个部门是我唯一能看到的。
发布于 2013-03-03 00:57:06
对于这个应用程序,这是很好的。你不需要为一个简单的温度计的性能而烦恼。
然而,如果你确实需要比除法和模数更快的运算,那么按位运算就可以帮上忙了。基本上,您将使用逐位&运算符,将要显示的值与描述要在显示器上显示的数字的模式进行比较。
查看此处的项目,例如:http://fritzing.org/projects/2-digit-7-segment-0-99-counting-with-arduino/
发布于 2013-03-04 10:21:28
您也可以尝试使用7段显示驱动器芯片来简化输出并节省引脚。MC14511BCP ( "4511")是一个很好的选择。它将把二进制编码的十进制(BCD)转换成适当的7段配置。规格表可以在here上找到,它们通常可以在在线电子零件商店中找到。
https://stackoverflow.com/questions/15176816
复制相似问题