Revision df6150db-db02-4868-8db8-a27366c2acf9 - Arduino Stack Exchange

 const int ledPin = 12;

 void setup(){
 pinMode(ledPin, OUTPUT);
 Serial.begin(9600);
 }

 void loop(){
 if (Serial.available()) {
 light(Serial.read() – '0');
 }
 delay(500);
 }

 void light(int n){
 for (int i = 0; i < n; i++) {
 digitalWrite(ledPin, HIGH);
 delay(100);
 digitalWrite(ledPin, LOW);
 delay(100);
 }
 }

by [Oscar Liang][1]

awesome little piece of code which taught me how to setup connection by serial. yet one part I don't understand fully. Why does this line: 

> light(Serial.read() – '0');

make the code run once,
and this line an infinite times.

> light(Serial.read());

has this something to do with binary? I don't get why subtracting the string 0 would run the code once. 

Thanks in Advance!

 [1]: https://oscarliang.com/connect-raspberry-pi-and-arduino-usb-cable/

AltStyle によって変換されたページ (->オリジナル) /