好的,所以我试图驱动一个基于7段的显示器,以便以摄氏度显示温度。所以,我有两个显示器,加上一个额外的LED来指示正数和负数。
我的问题在软件上。我必须找到一些驱动这些显示器的方法,这意味着将给定的整数转换为引脚上的相关电压,这意味着对于两个显示器中的每一个,我都需要知道整数中的10和1的数量。
到目前为止,我所提出的对于arduino来说不是很好,因为它依赖于除法。
tens = numberToDisplay / 10;
ones = numberToDisplay % 10;
我承认还没有测试过,但我认为我可以假设对于具有有限分割能力的微控制器来说,这不是最佳解决方案。
我绞尽脑汁,四处寻找使用加法/减法/位的解决方案,但我根本想不出一个。
对于这个应用程序来说很好。你不需要为一个简单的温度计的性能而烦恼。
如果你需要比除法和取模更快的运算,那么位运算就会有所帮助。基本上,您将使用按位&
运算符,将要显示的值与要在显示器上显示的描述数字的模式进行比较。
查看这里的项目示例:http://fritzing.org/projects/2-digit-7-segment-0-99-counting-with-arduino/
您也可以尝试使用7段显示驱动芯片来简化输出并节省引脚。MC14511BCP(一个"4511")是一个很好的。它将二进制编码十进制(BCD)转换为适当的7段配置。规格表可在这里获得,它们通常可以在电子零件商店网上找到。