{"id":631,"date":"2020-01-06T17:05:19","date_gmt":"2020-01-06T08:35:19","guid":{"rendered":"http:\/\/people.utm.my\/razman-ayop\/?p=631"},"modified":"2020-05-24T17:00:35","modified_gmt":"2020-05-24T08:30:35","slug":"arduino-basic-code-for-power-electronic-application","status":"publish","type":"post","link":"https:\/\/people.utm.my\/razman-ayop\/arduino-basic-code-for-power-electronic-application\/","title":{"rendered":"Arduino Basic Code for Power Electronic Application"},"content":{"rendered":"<h1>1.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Basic<\/h1>\n<h2>1.1.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Setup and Loop<\/h2>\n<p>viod setup(){}<\/p>\n<p>viod loop(){}<\/p>\n<p>&nbsp;<\/p>\n<h2>1.2.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Comment<\/h2>\n<p>\/\/single line comment<\/p>\n<p>\/*multi-line comment*\/<\/p>\n<p>&nbsp;<\/p>\n<h2>1.3.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Delay<\/h2>\n<p>Unit is ms<\/p>\n<p>delay(1000);<\/p>\n<p>&nbsp;<\/p>\n<h1>2.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Hardware<\/h1>\n<h2>2.1.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Buildin LED<\/h2>\n<p>Instead of using \u201cint led = 13\u201d, use:<\/p>\n<p>LED_BUILTIN<\/p>\n<p>&nbsp;<\/p>\n<h2>2.2.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Serial Monitor<\/h2>\n<p>void setup() {<\/p>\n<p>Serial.begin(9600);<\/p>\n<p>}<\/p>\n<p>void loop() {<\/p>\n<p>Serial.println(buttonState);<\/p>\n<p>delay(1);<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<h1>3.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Mathematics<\/h1>\n<h2>3.1.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Variable as Integer<\/h2>\n<p>-32768 to 32768, step of 1 (whole number)<\/p>\n<p>int pushButton = 2;<\/p>\n<p>or<\/p>\n<p>int pushButton;<\/p>\n<p>pushButton = 2;<\/p>\n<p>&nbsp;<\/p>\n<h2>3.2.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Variable as Float<\/h2>\n<p>With decimal point. Total 7 digit. Very slow.<\/p>\n<p>float voltage;<\/p>\n<p>&nbsp;<\/p>\n<h2>3.3.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Constant Variable<\/h2>\n<p>If the variable is fixed<\/p>\n<p>const int led = 13;<\/p>\n<p>&nbsp;<\/p>\n<h2>3.4.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Array<\/h2>\n<p>int example[]={1,3,5,7};<\/p>\n<p>example[3];<\/p>\n<p>&nbsp;<\/p>\n<h2>3.5.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Mapping<\/h2>\n<p>change X scale to Y scale<\/p>\n<p>map(X,minX,maxX,minY,maxY);<\/p>\n<p>&nbsp;<\/p>\n<h2>3.6.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Limit Value<\/h2>\n<p>constrain(value,lowerLimit,upperLimit);<\/p>\n<p>&nbsp;<\/p>\n<h2>3.7.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Other Mathematics Function<\/h2>\n<p>abs();<\/p>\n<p>min(a,b);<\/p>\n<p>max(a,b);<\/p>\n<p>pow(base,exponent) \/\/ 2^4 = pwo(2,4);<\/p>\n<p>sq();<\/p>\n<p>sqrt();<\/p>\n<p>cos(); \u00a0\u00a0\/\/in radian<\/p>\n<p>sin();\u00a0 \/\/in radian<\/p>\n<p>tan();\u00a0 \/\/in radian<\/p>\n<p>random(min,max);<\/p>\n<p>&nbsp;<\/p>\n<h1>4.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Control<\/h1>\n<h2>4.1.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 If or If-Else<\/h2>\n<p>void loop() {<\/p>\n<p>int analogValue = analogRead(analogPin);<\/p>\n<p>&nbsp;<\/p>\n<p>if (analogValue &gt; threshold || analogValue ==44) {<\/p>\n<p>digitalWrite(ledPin, HIGH);<\/p>\n<p>} else {<\/p>\n<p>digitalWrite(ledPin, LOW);<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>Serial.println(analogValue);<\/p>\n<p>delay(1);<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<h2>4.2.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 For Loop<\/h2>\n<p>void setup() {<\/p>\n<p>for (int thisPin = 2; thisPin &lt; 8; thisPin++) {<\/p>\n<p>pinMode(thisPin, OUTPUT);<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<p>void loop() {<\/p>\n<p>for (int thisPin = 2; thisPin &lt; 8; thisPin++) {<\/p>\n<p>digitalWrite(thisPin, HIGH);<\/p>\n<p>delay(100);<\/p>\n<p>digitalWrite(thisPin, LOW);<\/p>\n<p>}<\/p>\n<p>}<\/p>\n<h1>5.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Input Output<\/h1>\n<p>&nbsp;<\/p>\n<h2>5.1.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Digital In<\/h2>\n<p>int pushButton = 2;<\/p>\n<p>void setup() {<\/p>\n<p>Serial.begin(9600);<\/p>\n<p>pinMode(pushButton, INPUT);<\/p>\n<p>}<\/p>\n<p>void loop() {<\/p>\n<p>int buttonState = digitalRead(pushButton);<\/p>\n<p>Serial.println(buttonState);<\/p>\n<p>delay(1);<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<h2>5.2.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Digital Out<\/h2>\n<p>int led = 13;<\/p>\n<p>viod setup(){<\/p>\n<p>pinMode(led,OUTPUT);<\/p>\n<p>}<\/p>\n<p>viod loop(){<\/p>\n<p>digitalWrite(led,HIGH);<\/p>\n<p>delay(1000);<\/p>\n<p>digitalWrite(led,LOW);<\/p>\n<p>delay(1000);<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<h2>5.3.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Analog In<\/h2>\n<p>Integer value is from 0 to 1023, cover 0V to 5V.<\/p>\n<p>void setup() {<\/p>\n<p>Serial.begin(9600);<\/p>\n<p>}<\/p>\n<p>void loop() {<\/p>\n<p>int sensorValue = analogRead(A0);<\/p>\n<p>float voltage = sensorValue\/1023*5;<\/p>\n<p>Serial.println(voltage);<\/p>\n<p>delay(1);<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<h2>5.4.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Analog Out<\/h2>\n<p>Use the digital port that have PWM marking.<\/p>\n<p>Duty cycle is from 0 to 255.<\/p>\n<p>Frequency at 490 Hz.<\/p>\n<p>int led = 9;<\/p>\n<p>int dutyCycle = 100;<\/p>\n<p>&nbsp;<\/p>\n<p>void setup() {<\/p>\n<p>pinMode(led, OUTPUT);<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>void loop() {<\/p>\n<p>analogWrite(led, dutyCycle);<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<h2>5.5.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 PWM with Different Frequency<\/h2>\n<p>PWM.h library needs to be included.<\/p>\n<p>Refer to [3] and [4] to download and install library.<\/p>\n<p>#include &lt;PWM.h&gt;<\/p>\n<p>int led = 9;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ the pin that the LED is attached to<\/p>\n<p>int32_t frequency = 40000;\u00a0 \/\/ frequency (in Hz)<\/p>\n<p>int dutyCycle = 150;\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \/\/ range from 0 to 255<\/p>\n<p>void setup()<\/p>\n<p>{<\/p>\n<p>InitTimersSafe();<\/p>\n<p>bool success = SetPinFrequencySafe(led, frequency);<\/p>\n<p>}<\/p>\n<p>void loop()<\/p>\n<p>{<\/p>\n<p>pwmWrite(led,dutyCycle);<\/p>\n<p>}<\/p>\n<h1>6.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 References<\/h1>\n<ol>\n<li>Arduino Course for Absolute Beginners, <a href=\"https:\/\/www.youtube.com\/watch?v=09zfRaLEasY&amp;list=PLZfay8jtbyJt6gkkOgeeapCS_UrsgfuJA\">https:\/\/www.youtube.com\/watch?v=09zfRaLEasY&amp;list=PLZfay8jtbyJt6gkkOgeeapCS_UrsgfuJA<\/a><\/li>\n<li>Arduino Basics Change your PWM Frequency, <a href=\"https:\/\/www.youtube.com\/watch?v=gMB88fXOZ-g\">https:\/\/www.youtube.com\/watch?v=gMB88fXOZ-g<\/a><\/li>\n<li>Library for PWM, <a href=\"https:\/\/code.google.com\/archive\/p\/arduino-pwm-frequency-library\/downloads\">https:\/\/code.google.com\/archive\/p\/arduino-pwm-frequency-library\/downloads<\/a><\/li>\n<li>Guide to Install New Library, <a href=\"https:\/\/www.arduino.cc\/en\/Guide\/Libraries\">https:\/\/www.arduino.cc\/en\/Guide\/Libraries<\/a><\/li>\n<li>Math Functions in Arduino Part 1, <a href=\"https:\/\/www.youtube.com\/watch?v=CVRk3XO_6MQ\">https:\/\/www.youtube.com\/watch?v=CVRk3XO_6MQ<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>1.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Basic 1.1.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Setup and Loop viod setup(){} viod loop(){} &nbsp; 1.2.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Comment \/\/single line comment \/*multi-line comment*\/ &nbsp; 1.3.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Delay Unit is ms delay(1000); &nbsp; 2.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Hardware 2.1.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Buildin LED Instead of using \u201cint led = 13\u201d, use: LED_BUILTIN &nbsp; 2.2.\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Serial Monitor void setup() { Serial.begin(9600); } void loop() { Serial.println(buttonState); delay(1); } [&hellip;]<\/p>\n","protected":false},"author":24954,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[32],"tags":[],"class_list":["post-631","post","type-post","status-publish","format-standard","hentry","category-research-guidance"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/people.utm.my\/razman-ayop\/wp-json\/wp\/v2\/posts\/631","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/people.utm.my\/razman-ayop\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/people.utm.my\/razman-ayop\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/people.utm.my\/razman-ayop\/wp-json\/wp\/v2\/users\/24954"}],"replies":[{"embeddable":true,"href":"https:\/\/people.utm.my\/razman-ayop\/wp-json\/wp\/v2\/comments?post=631"}],"version-history":[{"count":1,"href":"https:\/\/people.utm.my\/razman-ayop\/wp-json\/wp\/v2\/posts\/631\/revisions"}],"predecessor-version":[{"id":636,"href":"https:\/\/people.utm.my\/razman-ayop\/wp-json\/wp\/v2\/posts\/631\/revisions\/636"}],"wp:attachment":[{"href":"https:\/\/people.utm.my\/razman-ayop\/wp-json\/wp\/v2\/media?parent=631"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/people.utm.my\/razman-ayop\/wp-json\/wp\/v2\/categories?post=631"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/people.utm.my\/razman-ayop\/wp-json\/wp\/v2\/tags?post=631"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}