<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>&amp;quot;No lies&amp;quot; IR Thermometer - part IV</title><link>/challenges-projects/project14/test-instrumentation/b/blog/posts/no-lies-ir-thermometer---part-iv</link><description>Test Instrumentation Enter Your Electronics &amp;amp; Design Project for a chance to win a Grand Prize for Originality, a Tool Set, and a $100 Shopping Cart! Back to The Project14 homepage Project14 Home Monthly Themes Monthly Theme Poll Links to previo...</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: &amp;quot;No lies&amp;quot; IR Thermometer - part IV</title><link>https://community.element14.com/challenges-projects/project14/test-instrumentation/b/blog/posts/no-lies-ir-thermometer---part-iv</link><pubDate>Tue, 28 Nov 2023 21:45:29 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4c596248-7a69-4298-beb3-0cf01c19dd26</guid><dc:creator>Marvian</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hi David, I have same project and I could not communicate with MLX90614. I appreciate if you share your PSOC code so I can figure out it.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Marvian&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=5681&amp;AppID=215&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: &amp;quot;No lies&amp;quot; IR Thermometer - part IV</title><link>https://community.element14.com/challenges-projects/project14/test-instrumentation/b/blog/posts/no-lies-ir-thermometer---part-iv</link><pubDate>Wed, 17 Oct 2018 10:46:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4c596248-7a69-4298-beb3-0cf01c19dd26</guid><dc:creator>koudelad</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Thank you for the parts list and suggestions. I might try one of those in the future.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I also thought the Sharp memory display could be a great display for similar devices: &lt;a class="jive-link-external-small" href="https://www.adafruit.com/product/1393" rel="nofollow ugc noopener" target="_blank" title="https://www.adafruit.com/product/1393"&gt;https://www.adafruit.com/product/1393&lt;/a&gt; . The only disadvantage is a lack of back light.&lt;/p&gt;&lt;p&gt;However, I still have respect from the graphic displays. The alphanumeric displays are quite easy to use.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=5681&amp;AppID=215&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: &amp;quot;No lies&amp;quot; IR Thermometer - part IV</title><link>https://community.element14.com/challenges-projects/project14/test-instrumentation/b/blog/posts/no-lies-ir-thermometer---part-iv</link><pubDate>Mon, 15 Oct 2018 16:48:01 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4c596248-7a69-4298-beb3-0cf01c19dd26</guid><dc:creator>mcb1</dc:creator><slash:comments>1</slash:comments><description>&lt;blockquote class="jive-quote"&gt;&lt;span&gt;However, this type doesn&amp;#39;t have the charge pump (I need to use a 3,3 V version)&lt;/span&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;span&gt;I have been buying 8x2 LCD&amp;#39;s for a while and generally go for the I2C version where a backpack is fitted.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;These have all had the connector on the side, but one day one of them didn&amp;#39;t work ... well it sort of did but the contrast was all wrong.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;After some digging around I found it had the extra IC soldered on and it was a 3v3 version.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Looking at the others they all had the capability of adding this IC to make them 3v3 versions.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;SO yours might have the capability , but you need to source the IC.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Mark&lt;/span&gt;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=5681&amp;AppID=215&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: &amp;quot;No lies&amp;quot; IR Thermometer - part IV</title><link>https://community.element14.com/challenges-projects/project14/test-instrumentation/b/blog/posts/no-lies-ir-thermometer---part-iv</link><pubDate>Fri, 12 Oct 2018 19:56:40 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4c596248-7a69-4298-beb3-0cf01c19dd26</guid><dc:creator>koudelad</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Thank you, &lt;span&gt;[mention:d85999949f974a74a457e05151ea1c2b:e9ed411860ed4f2ba0265705b8793d05]&lt;/span&gt; and &lt;span&gt;[mention:b0bc65b9ecdc4307bd967592f00e340a:e9ed411860ed4f2ba0265705b8793d05]&lt;/span&gt; for the kind words and ideas.&lt;/p&gt;&lt;p&gt;I will try to implement the algorithm you suggest, as it will be more &amp;quot;portable&amp;quot; in case of changing the microcontroller family in the future.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I also haven&amp;#39;t thought of clocking the FSM itself. Very interesting.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;David&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=5681&amp;AppID=215&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: &amp;quot;No lies&amp;quot; IR Thermometer - part IV</title><link>https://community.element14.com/challenges-projects/project14/test-instrumentation/b/blog/posts/no-lies-ir-thermometer---part-iv</link><pubDate>Thu, 11 Oct 2018 20:33:54 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4c596248-7a69-4298-beb3-0cf01c19dd26</guid><dc:creator>shabaz</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hi David,&lt;/p&gt;&lt;p&gt;This is a stunning looking project! Great demo video too.&lt;/p&gt;&lt;p&gt;I too came across the same problem as you, that some LCDs are missing the charge pump (they need the IC and a few caps soldered, if they left the pads there - which puts it into similar pricing as the more expensive displays in the end).&lt;/p&gt;&lt;p&gt;Regarding debounce, I prefer it in software (although I&amp;#39;ve not use PSoC). As Rod says, if you create a regular tick, then you can use it to clock your state machines.&lt;/p&gt;&lt;p&gt;The easiest method usually is to detect a button press (either via an input pin falling edge interrupt (e.g. if the button causes a pin to go low), or just using your main loop or tick if it is frequent enough), and then start a timer (call it say button_inhibit_timer) for say 20 msec. That is used to lock out any more button interrupts from causing events for this 20msec debounce period. Similarly, the timer is also used on button release.&lt;/p&gt;&lt;p&gt;The pseudo-code below shows one method, but other ways can be more appropriate depending on what timer and button event facilities are easy to use with the microcontroller and APIs that you have. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:3ef06e6b-9b7d-4651-b12d-db8be7f5e991:type=c_cpp&amp;amp;text=button_pressed_interrupt%28%29+%7B%0A++if+%28button_inhibit%3D%3D0%29+%7B%0A++++button_inhibit%3D1%3B%0A++++button_inhibit_timer.start%2820msec%29%3B%0A++++do_button_command%28%29%3B%0A++%7D%0A%7D%0A%0Abutton_inhibit_timer_expiry%28%29+%7B%0A++if+%28button_pressed%29+%2F%2F+button+is+still+pressed%2C+keep+waiting%0A++++button_inhibit_timer.start%2820msec%29%3B%0Aelse+if+%28button_inhibit%3D%3D1%29%0A++button_inhibit_timer.start%2820msec%29%3B+%2F%2F+holdoff+period+to+ignore+button+release+bounce%0A++button_inhibit%3D2%3B%0Aelse+if+%28button_inhibit%3D%3D2%29%0A++button_inhibit%3D0%3B%0A++button_released%28%29%3B%0A%7D%0A%0Ado_button_command%28%29+%7B%0A++print%28%22button+was+pressed%22%29%3B%0A%7D%0A%0Abutton_released%28%29+%7B%0A++print%28%22button+was+released%22%29%3B%0A%7D]&lt;/p&gt;&lt;div&gt;&lt;/div&gt;&lt;img src="https://community.element14.com/aggbug?PostID=5681&amp;AppID=215&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: &amp;quot;No lies&amp;quot; IR Thermometer - part IV</title><link>https://community.element14.com/challenges-projects/project14/test-instrumentation/b/blog/posts/no-lies-ir-thermometer---part-iv</link><pubDate>Thu, 11 Oct 2018 19:45:21 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:4c596248-7a69-4298-beb3-0cf01c19dd26</guid><dc:creator>14rhb</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hi David,&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This is a very professional build and great write up - well done.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I&amp;#39;m not sure if you could implement this, but on microcontrollers I sometimes generate a small interrupt ticker that can be used for timings and debounce - in the interrupt routine all the separate peripherals (like switches, longer term timers etc are all decremented and flags set should they reach zero). Back in the main FSM loop I check those flags and action accordingly. That way the processor doesn&amp;#39;t pause when I&amp;#39;m debouncing in SW.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Rod&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=5681&amp;AppID=215&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>