The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.
Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by ROSLINDA BINTI ROSLAN KPM-Guru, 2023-05-11 00:47:36

Peranti dan Pengaturcaraan IoT

Peranti dan Pengaturcaraan IoT

Keywords: Peranti,pengaturcaraan,iot,devices

# Activity 1: LED – The Circuit


# Activity 1: LED – The Circuit


# Activity 1: LED – The Circuit


# Activity 1: LED – The Circuit


# Activity 1: LED – ON and OFF LED TASK 1 a) ON LED D1 at PIN 13 b) BLINK LED D1 at PIN 13 c) BLINK BETWEEN 2 LED ( D1 & D2) d) LED CHASER Combine task 1 (b), (c) and (d) in one program.


# Task 2 Buzzer – The Circuit


Comments, Comments, Comments Comments are for you – the programmer and your friends…or anyone else human that might read your code. // this is for single line comments // it’s good to put a description at the top and before anything ‘tricky’ /* this is for multi-line comments Like this… And this…. */


comments Comments, Comments, Comments


Three commands to know… • pinMode(pin, INPUT/OUTPUT); • ex: pinMode(13, OUTPUT); • digitalWrite(pin, HIGH/LOW); • ex: digitalWrite(13, HIGH); • delay(time_ms); • ex: delay(2500); // delay of 2.5 sec. • // NOTE: -> commands are CASE-sensitive


Programming Concepts: Variables Variable Scope •Global •--- •Function-level


digitalWrite() analogWrite() digitalRead() if() statements / Boolean analogRead() Serial communication This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 United States License. BIG 6 CONCEPTS


DIGITAL INPUT


Digital Sensors (a.k.a. Switches) Pull-up Resistor (circuit) to Digital Pin 2


Digital Sensors (a.k.a. Switches) Add an indicator LED to Pin 13


Digital Sensors •Digital sensors are more straight forward than Analog •No matter what the sensor there are only two settings: On and Off • Signal is always either HIGH (On) or LOW (Off) • Voltage signal for HIGH will be a little less than 5V on your Uno • Voltage signal for LOW will be 0V on most systems


Digital Input • Connect digital input to your Arduino using Pins # 0 – 13 (Although pins # 0 & 1 are also used for programming) • Digital Input needs a pinMode command: pinMode (pinNumber, INPUT); Make sure to use ALL CAPS for INPUT • To get a digital reading: int buttonState = digitalRead (pinNumber); • Digital Input values are only HIGH (On) or LOW (Off)


Data Types boolean (8 bit) - simple logical true/false byte (8 bit) - unsigned number from 0-255 char (8 bit) - signed number from -128 to 127 unsigned char (8 bit) - same as ‘byte’; word (16 bit) - unsigned number from 0-65535 unsigned int (16 bit)- the same as ‘word’ int (16 bit) - signed number from -32768 to 32767 unsigned long (32 bit) - unsigned number from 0-4,294,967,295 long (32 bit) - signed number from -2,147,483,648 to 2,147,483,647 float (32 bit) - signed number from -3.4028235E38 to 3.4028235E38


http://opensourcehardwarejunkies.com/tutorial-03-digitalread-and-serial-port-communication/ Digital Sensors


Programming: Conditional Statements if()


void loop() { int buttonState = digitalRead(5); if(buttonState == LOW) { // do something } else { // do something else } } Programming: Conditional Statements if()…else DIG INPUT


Boolean Operators <Boolean> Description ( ) == ( ) is equal? ( ) != ( ) is not equal? ( ) > ( ) greater than ( ) >= ( ) greater than or equal ( ) < ( ) less than ( ) <= ( ) less than or equal


SERIAL COM


Arduino – Serial Communication


Arduino – Serial Communication • Serial communication on pins TX/RX uses TTL logic levels (5V or 3.3V depending on the board). • Serial is used for communication between the Arduino board and a computer or other devices. • All Arduino boards have at least one serial port (also known as a UART or USART): • Serial. It communicates on digital pins 0 (RX) and 1 (TX) as well as with the computer via USB. Thus, if you use these functions, you cannot also use pins 0 and 1 for digital input or output. Functions •if (Serial) •available() •availableForWrite() •begin() •end() •find() •findUntil() •flush() •parseFloat() •parseInt() •peek() •print() •println() •read() •readBytes() •readBytesUntil() •readString() •readStringUntil() •setTimeout() •write() •serialEvent()


Arduino – Serial Sketch #1 Functions •if (Serial) •available() •availableForWrite() •begin() •end() •find() •findUntil() •flush() •parseFloat() •parseInt() •peek() •print() •println() •read() •readBytes() •readBytesUntil() •readString() •readStringUntil() •setTimeout() •write() •serialEvent() Sending Data to PC from the Arduino void setup() { Serial.begin(9600); } void loop() { Serial.println("Hello, world!"); delay(1000); } • Compile the program by clicking the "Verify" button in the Arduino IDE. Upload the program to the Arduino board by clicking the "Upload" button. • Now start the serial monitor by clicking the "Serial Monitor" button in the Arduino IDE. Sends a text message out of the serial (USB) port of the Arduino every second.


Arduino – Serial Sketch #2 Sending Data from Arduino to PC char rx_byte; void setup() { Serial.begin(9600); } void loop() { if (Serial.available() > 0) { rx_byte = Serial.read(); Serial.print("You typed: "); Serial.println(rx_byte); } } Receives a text character from the serial (USB) port of the Arduino. Transmits a message back to the PC with the received character.


Additional Serial Communication Sending a Message void loop ( ) { Serial.print(“Hands on “) ; Serial.print(“Learning ”) ; • Serial.println(“is Fun!!!”) ; }


Serial Communication: Serial Debugging void loop() { int xVar = 10; Serial.print ( “Variable xVar is “ ) ; Serial.println ( xVar ) ; }


Serial Communication: Serial Troubleshooting void loop ( ) { Serial.print (“Digital pin 9: “); Serial.println (digitalRead(9)); }


Serial Monitor & analogRead() Initializes the Serial Communication 9600 baud data rate prints data to serial bus


Serial Monitor & analogRead() Opens up a Serial Terminal Window


DAY 2 : Review …….


Analog INPUTS Digital I\O PWM(3, 5, 6, 9, 10, 11) PWR IN USB (to Computer) SCL\SDA (I2C Bus) POWER 5V / 3.3V / GND RESET


ANALOGUE INPUT


Introduction to Sensor and their connection


Example of Analogue sensors breakout


Example of Digital sensors breakout


Analog Sensors Examples: Sensors Variables Mic soundVolume Photoresistor lightLevel Potentiometer dialPosition Temp Sensor temperature Flex Sensor bend Accelerometer tilt/acceleration


Analog Sensors 3 Pin Potentiometer = var. resistor (circuit) a.k.a. Voltage Divider Circuit 1.0 V 1.0 V wiper fixed ends


Trimpot (Potentiometer) Variable Resistor wiper fixed end fixed end


Ohms Law… (just the basics) Actually, this is the “voltage divider” •


analogRead() • Arduino uses a 10-bit A/D Converter: • this means that you get input values from 0 to 1023 • 0 V 0 • 5 V 1023 •Ex: • int sensorValue = analogRead(A0);


Analog Sensors 2 Pin Analog Sensors = var. resistor •Take two sensors -- Use the Serial Monitor and find the range of input values you get for each sensor. •MaxAnalogRead = _________ •MinAnalogRead = _________


PWM


Fading in and Fading Out (Analog or Digital?) • A few pins on the Arduino allow for us to modify the output to mimic an analog signal. • This is done by a technique called: • Pulse Width Modulation (PWM)


Concepts: Analog vs. Digital •To create an analog signal, the microcontroller uses a technique called PWM. By varying the duty cycle, we can mimic an “average” analog voltage. •Pulse Width Modulation (PWM)


ARDUINO LCD Programming & Interfacing


Arduino – LCD Character type


Referenced from the perspective of the microcontroller (electrical board). Arduino – LCD Pin Layout


Click to View FlipBook Version