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