<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	
	>
<channel>
	<title>
	Comments for Teach Me Microcontrollers!	</title>
	<atom:link href="https://www.teachmemicro.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.teachmemicro.com/</link>
	<description>Microcontroller Tutorials and Resources</description>
	<lastBuildDate>Sat, 12 Sep 2026 00:52:08 +0000</lastBuildDate>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>
	<item>
		<title>
		Comment on MAX30102: An Improved Heart Rate Sensor for Arduino by Helder Daniel		</title>
		<link>https://www.teachmemicro.com/max30102-an-improved-heart-rate-sensor-for-arduino/#comment-279777</link>

		<dc:creator><![CDATA[Helder Daniel]]></dc:creator>
		<pubDate>Mon, 07 Feb 2022 12:46:38 +0000</pubDate>
		<guid isPermaLink="false">https://www.teachmemicro.com/?p=5212#comment-279777</guid>

					<description><![CDATA[Max30102 I2C has voltage levels at: Lv = 0-0.6 and Hv = 1.4-1.8, according to the data sheet:

https://www.alldatasheet.com/view.jsp?Searchword=Max30102

We just have to put a logical level converter, such as:

https://www.sparkfun.com/products/12009

Between the max30102 SCL and SDA pins (logic level 1.8v) and the arduino (5v) pins.

To get a reference for the logic converter at 1.8v we can use a voltage divider from the arduino Vcc=5v with a 1kohm and 560 ohm resistors.

I tried this with an arduino uno.]]></description>
			<content:encoded><![CDATA[<p>Max30102 I2C has voltage levels at: Lv = 0-0.6 and Hv = 1.4-1.8, according to the data sheet:</p>
<p><a href="https://www.alldatasheet.com/view.jsp?Searchword=Max30102" rel="nofollow ugc">https://www.alldatasheet.com/view.jsp?Searchword=Max30102</a></p>
<p>We just have to put a logical level converter, such as:</p>
<p><a href="https://www.sparkfun.com/products/12009" rel="nofollow ugc">https://www.sparkfun.com/products/12009</a></p>
<p>Between the max30102 SCL and SDA pins (logic level 1.8v) and the arduino (5v) pins.</p>
<p>To get a reference for the logic converter at 1.8v we can use a voltage divider from the arduino Vcc=5v with a 1kohm and 560 ohm resistors.</p>
<p>I tried this with an arduino uno.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on MAX30102: An Improved Heart Rate Sensor for Arduino by Helder Daniel		</title>
		<link>https://www.teachmemicro.com/max30102-an-improved-heart-rate-sensor-for-arduino/#comment-279446</link>

		<dc:creator><![CDATA[Helder Daniel]]></dc:creator>
		<pubDate>Sun, 06 Feb 2022 12:41:57 +0000</pubDate>
		<guid isPermaLink="false">https://www.teachmemicro.com/?p=5212#comment-279446</guid>

					<description><![CDATA[Don&#039;t we need a logic converter to connect the 3.3v max30102 to the 5v arduino i2c?]]></description>
			<content:encoded><![CDATA[<p>Don't we need a logic converter to connect the 3.3v max30102 to the 5v arduino i2c?</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on Arduino Parts &#124; DIY Arduino Guide by IAN BROWN		</title>
		<link>https://www.teachmemicro.com/arduino-parts-diy-arduino-guide/#comment-265684</link>

		<dc:creator><![CDATA[IAN BROWN]]></dc:creator>
		<pubDate>Fri, 31 Dec 2021 22:21:14 +0000</pubDate>
		<guid isPermaLink="false">https://www.teachmemicro.com/?p=2201#comment-265684</guid>

					<description><![CDATA[Hi Roland - excellent info! I&#039;m wondering if you have done [or can offer any info on] &quot;a newbies guide to receiving IR Receiver [IRR] &#038; IR Sender [IRS] codes using an Arduino Uno or Nano&quot;? I have an IRR and IRS modules and am trying to get my Sony TV Remote [Model Sony RM-GD005] buttons codes because my Sony Bravia TV [Model KDL-40Z4500] IRR Module has died and I can&#039;t obtain any of the IRR specs, e.g., [Carrier Frequency, voltage and current ratings etc] so I can a) replace the IR Receiver and use my remote or b) obtain a similar IRR and fashion a new IRR!
Sony Support Australia has been absolutely totally useless and clearly don&#039;t want to know about this &quot;common issue&quot; other than to say the part has been superseded and is no longer available! [BTW I have been a Sony user all my life - BUT following Sony&#039;s dismissive attitude, not any longer]!
Hope you can be of help or able to point me in the right direction, please - I have downloaded the GitHub IR Remotes and Ken Shirriff&#039;s post but not being a programmer etc find it very hard going to sort the wheat from the chaff! Greatly appreciate any help you may be able to provide. Regards, Ian]]></description>
			<content:encoded><![CDATA[<p>Hi Roland - excellent info! I'm wondering if you have done [or can offer any info on] "a newbies guide to receiving IR Receiver [IRR] &amp; IR Sender [IRS] codes using an Arduino Uno or Nano"? I have an IRR and IRS modules and am trying to get my Sony TV Remote [Model Sony RM-GD005] buttons codes because my Sony Bravia TV [Model KDL-40Z4500] IRR Module has died and I can't obtain any of the IRR specs, e.g., [Carrier Frequency, voltage and current ratings etc] so I can a) replace the IR Receiver and use my remote or b) obtain a similar IRR and fashion a new IRR!<br />
Sony Support Australia has been absolutely totally useless and clearly don't want to know about this "common issue" other than to say the part has been superseded and is no longer available! [BTW I have been a Sony user all my life - BUT following Sony's dismissive attitude, not any longer]!<br />
Hope you can be of help or able to point me in the right direction, please - I have downloaded the GitHub IR Remotes and Ken Shirriff's post but not being a programmer etc find it very hard going to sort the wheat from the chaff! Greatly appreciate any help you may be able to provide. Regards, Ian</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on Arduino Pressure Sensor Tutorial &#124; MPS20N0040D by DS KIRAN		</title>
		<link>https://www.teachmemicro.com/arduino-pressure-sensor-tutorial/#comment-265578</link>

		<dc:creator><![CDATA[DS KIRAN]]></dc:creator>
		<pubDate>Fri, 31 Dec 2021 16:41:18 +0000</pubDate>
		<guid isPermaLink="false">https://www.teachmemicro.com/?p=5239#comment-265578</guid>

					<description><![CDATA[please send complete code.]]></description>
			<content:encoded><![CDATA[<p>please send complete code.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on WeMos D1 Mini Pinout and Getting Started Guide by ben		</title>
		<link>https://www.teachmemicro.com/getting-started-wemos-d1-mini/#comment-264395</link>

		<dc:creator><![CDATA[ben]]></dc:creator>
		<pubDate>Wed, 29 Dec 2021 07:42:19 +0000</pubDate>
		<guid isPermaLink="false">https://www.teachmemicro.com/?p=3710#comment-264395</guid>

					<description><![CDATA[* precise guide]]></description>
			<content:encoded><![CDATA[<p>* precise guide</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on WeMos D1 Mini Pinout and Getting Started Guide by ben		</title>
		<link>https://www.teachmemicro.com/getting-started-wemos-d1-mini/#comment-264394</link>

		<dc:creator><![CDATA[ben]]></dc:creator>
		<pubDate>Wed, 29 Dec 2021 07:39:55 +0000</pubDate>
		<guid isPermaLink="false">https://www.teachmemicro.com/?p=3710#comment-264394</guid>

					<description><![CDATA[Very clear and price guide. Thank you.]]></description>
			<content:encoded><![CDATA[<p>Very clear and price guide. Thank you.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on Generating an Arduino 16-bit PWM by Donald Wright		</title>
		<link>https://www.teachmemicro.com/generate-arduino-16-bit-pwm/#comment-264315</link>

		<dc:creator><![CDATA[Donald Wright]]></dc:creator>
		<pubDate>Wed, 29 Dec 2021 03:49:06 +0000</pubDate>
		<guid isPermaLink="false">https://www.teachmemicro.com/?p=3990#comment-264315</guid>

					<description><![CDATA[This was a very interesting blog. It help me a lot to understand on how the µC works. 

I have made a few modifications to be use on the MEGA 2560 board and that might help other people.
The modifications also consisted on fixing the frequency to 20 kHz outputs on OC1A and OC1B. To arrive at this, ICR1 = 0x190 and not 0xFFFF. A few tests later and reading on an oscilloscope confirmed that accuracy of the frequency and duty cycle of the PWM outpout on header pins 12 and 11 are accurate. The big inconvenient is that the PWM granularity has a maximum of 400 (0x190 = 110010000) steps, which gives an almost full 9-bit resolutions, where 9 bit resolution is 0x1ff. The next project will be to use the 10 bit resolutions (mode operation 4 of table 13-4 above from other of blog)

void setup() {
  Serial.begin(9600);
  pinMode(11, OUTPUT);
  pinMode(12, OUTPUT);
  TCCR1A = (TCCR1A &#038; B00001100) &#124; B10100010;   //Phase and frequency correct, Non-inverting mode, TOP defined by ICR1
  TCCR1B = (TCCR1B &#038; B11100000) &#124; B00010001;    //Prescale set to 1 or none
  ICR1 = 0x190; // Set frequency at 20 kHz, 0x190 = d400 (0xFFFF; // 65535) 
}
 
void loop() {

// 0x190 = 400 decimal = maximum value for duty cycle = 100% duty cycle. Setting OCR1A and OCR1B above this ICR1 value of 0x190 will not generate any PWM
//pwm_16(0xc8); // 0xc8 = 200 dec = 50% Duty Cycle
//pwm_16(0x02); // 0x02 = 2 dec = 0.5% Duty Cycle
pwm_16_1A (0xAE); // 0xAE = 174 déc = 43.5% Duty Cycle
pwm_16_1B (0x10C); // 0x10C = 268 = Duty cycle 68%
}
 
void pwm_16_1A(int val){
  OCR1A = val;    //Set PWM duty of TIMER 1, channel A
}

void pwm_16_1B(int val){
  OCR1B = val;     //Set PWM duty of TIMER 1, channel B
}]]></description>
			<content:encoded><![CDATA[<p>This was a very interesting blog. It help me a lot to understand on how the µC works. </p>
<p>I have made a few modifications to be use on the MEGA 2560 board and that might help other people.<br />
The modifications also consisted on fixing the frequency to 20 kHz outputs on OC1A and OC1B. To arrive at this, ICR1 = 0x190 and not 0xFFFF. A few tests later and reading on an oscilloscope confirmed that accuracy of the frequency and duty cycle of the PWM outpout on header pins 12 and 11 are accurate. The big inconvenient is that the PWM granularity has a maximum of 400 (0x190 = 110010000) steps, which gives an almost full 9-bit resolutions, where 9 bit resolution is 0x1ff. The next project will be to use the 10 bit resolutions (mode operation 4 of table 13-4 above from other of blog)</p>
<p>void setup() {<br />
  Serial.begin(9600);<br />
  pinMode(11, OUTPUT);<br />
  pinMode(12, OUTPUT);<br />
  TCCR1A = (TCCR1A &amp; B00001100) | B10100010;   //Phase and frequency correct, Non-inverting mode, TOP defined by ICR1<br />
  TCCR1B = (TCCR1B &amp; B11100000) | B00010001;    //Prescale set to 1 or none<br />
  ICR1 = 0x190; // Set frequency at 20 kHz, 0x190 = d400 (0xFFFF; // 65535)<br />
}</p>
<p>void loop() {</p>
<p>// 0x190 = 400 decimal = maximum value for duty cycle = 100% duty cycle. Setting OCR1A and OCR1B above this ICR1 value of 0x190 will not generate any PWM<br />
//pwm_16(0xc8); // 0xc8 = 200 dec = 50% Duty Cycle<br />
//pwm_16(0x02); // 0x02 = 2 dec = 0.5% Duty Cycle<br />
pwm_16_1A (0xAE); // 0xAE = 174 déc = 43.5% Duty Cycle<br />
pwm_16_1B (0x10C); // 0x10C = 268 = Duty cycle 68%<br />
}</p>
<p>void pwm_16_1A(int val){<br />
  OCR1A = val;    //Set PWM duty of TIMER 1, channel A<br />
}</p>
<p>void pwm_16_1B(int val){<br />
  OCR1B = val;     //Set PWM duty of TIMER 1, channel B<br />
}</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on How to Use a Web Cam with Raspberry Pi by gaurish kadam		</title>
		<link>https://www.teachmemicro.com/raspberry-pi-web-cam/#comment-262980</link>

		<dc:creator><![CDATA[gaurish kadam]]></dc:creator>
		<pubDate>Sun, 26 Dec 2021 08:41:21 +0000</pubDate>
		<guid isPermaLink="false">https://www.teachmemicro.com/?p=1475#comment-262980</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.teachmemicro.com/raspberry-pi-web-cam/#comment-230078&quot;&gt;Tom Giaudrone&lt;/a&gt;.

First do ls /dev/ without connecting the camera. Later do the same with camera connected. Typically it&#039;s video0.]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.teachmemicro.com/raspberry-pi-web-cam/#comment-230078">Tom Giaudrone</a>.</p>
<p>First do ls /dev/ without connecting the camera. Later do the same with camera connected. Typically it's video0.</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on Watchdog Timer on Arduino Tutorial by bigmike		</title>
		<link>https://www.teachmemicro.com/arduino-watchdog-timer/#comment-260782</link>

		<dc:creator><![CDATA[bigmike]]></dc:creator>
		<pubDate>Tue, 21 Dec 2021 23:27:54 +0000</pubDate>
		<guid isPermaLink="false">https://www.teachmemicro.com/?p=4578#comment-260782</guid>

					<description><![CDATA[Useful info, thank you.

Anyway, there are 2 errors in the code:

- You don&#039;t enable the reset after interrupt

try to add:

if(count&#062;5) {
    while(true) {}  // Should reset after 2 seconds
  }

in loop, and you&#039;ll see no reset.

To fix change the line with: 
WDTCSR = (1&#060;&#060;WDE) &#124; (1&#060;&#060;WDIE)&#124; (1&#060;&#060;WDP2) &#124; (1&#060;&#060;WDP1) &#124; (1&#060;&#060;WDP0);


- Watchdog interrupt must be enabled after every interrupt (or you&#039;ll see a reset every 4 seconds)

To fix, add in loop:

WDTCSR &#124;= (1&#060;&#060;WDIE);  // Enable watchdog Interrupt again]]></description>
			<content:encoded><![CDATA[<p>Useful info, thank you.</p>
<p>Anyway, there are 2 errors in the code:</p>
<p>- You don't enable the reset after interrupt</p>
<p>try to add:</p>
<p>if(count&gt;5) {<br />
    while(true) {}  // Should reset after 2 seconds<br />
  }</p>
<p>in loop, and you'll see no reset.</p>
<p>To fix change the line with:<br />
WDTCSR = (1&lt;&lt;WDE) | (1&lt;&lt;WDIE)| (1&lt;&lt;WDP2) | (1&lt;&lt;WDP1) | (1&lt;&lt;WDP0);</p>
<p>- Watchdog interrupt must be enabled after every interrupt (or you&#039;ll see a reset every 4 seconds)</p>
<p>To fix, add in loop:</p>
<p>WDTCSR |= (1&lt;&lt;WDIE);  // Enable watchdog Interrupt again</p>
]]></content:encoded>
		
			</item>
		<item>
		<title>
		Comment on Arduino PID Controller Tutorial: Code, PID Library and Tuning by Abdullah noman		</title>
		<link>https://www.teachmemicro.com/arduino-pid-control-tutorial/#comment-259876</link>

		<dc:creator><![CDATA[Abdullah noman]]></dc:creator>
		<pubDate>Mon, 20 Dec 2021 04:55:14 +0000</pubDate>
		<guid isPermaLink="false">https://www.teachmemicro.com/?p=2711#comment-259876</guid>

					<description><![CDATA[In reply to &lt;a href=&quot;https://www.teachmemicro.com/arduino-pid-control-tutorial/#comment-22685&quot;&gt;Roland Pelayo&lt;/a&gt;.

I WANT TO CONNECT A FAN IN CASE MY TEMP IS LESSER THAN THE SET POINT.WHAT CHANGING I SHOULD DO]]></description>
			<content:encoded><![CDATA[<p>In reply to <a href="https://www.teachmemicro.com/arduino-pid-control-tutorial/#comment-22685">Roland Pelayo</a>.</p>
<p>I WANT TO CONNECT A FAN IN CASE MY TEMP IS LESSER THAN THE SET POINT.WHAT CHANGING I SHOULD DO</p>
]]></content:encoded>
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Page Caching using Disk: Enhanced 

Served from: www.teachmemicro.com @ 2026-09-12 11:59:01 by W3 Total Cache
-->