OBJECTIVES: TO BE ABLE TO COMMUNICATE WITH THE MICROCONTROLLER BOARD
BY CONTROLLING THE DIGITAL AND ANALOG INPUT/OUTPUT PIN TO COMMAND
CERTAIN TASK TO BE DISPLAYED IN THE COMPUTER MONITOR WHILE DEMONSTRATING
THE ACTUAL OUTPUT.
MATERIALS:
QUANTITY COMPONENTS
1 ARDUINO
1 1K OHM POTENTIOMETER
1 BREADBOARD
20 JUMPER WIRES
6 LED
6 RESISTOR
SCHEMATIC DIAGRAM:
LABORATORY EXERCISES:
1. CREATE A PROGRAM THAT WILL DISPLAY TO THE MONITOR THE ALTERNATE
BLINKING OF ODD / EVEN LEDS EVERY TIME YOU ENTER A COMMAND KEY “O”
FOR ODD NUMBERS LED AND “E” FOR EVEN NUMBERS LED. USE 6 LEDS. ( REFER
TO LABORATORY ACT.#1: BLINKING LEDS)
CODE:
int ledpin1 = 4;
int ledpin2 = 5;
int ledpin3 = 6;
int ledpin4 = 7;
int ledpin5 = 8;
int ledpin6 = 9;
int serial;
void setup() {
pinMode(ledpin1, OUTPUT);
pinMode(ledpin2, OUTPUT);
pinMode(ledpin3, OUTPUT);
pinMode(ledpin4, OUTPUT);
pinMode(ledpin5, OUTPUT);
pinMode(ledpin6, OUTPUT);
Serial.begin(9600); }
void loop() {
if (Serial.available()>0)
serial = Serial.read();
switch(serial)
{
case 'O':
digitalWrite(ledpin1, HIGH);
digitalWrite(ledpin3, HIGH);
digitalWrite(ledpin5, HIGH);
delay(5000);
digitalWrite(ledpin1, LOW);
digitalWrite(ledpin3, LOW);
digitalWrite(ledpin5, LOW); *
delay(5000);
Serial.println("Odd on");
break;
case'E':
digitalWrite(ledpin2, HIGH);
digitalWrite(ledpin4, HIGH);
digitalWrite(ledpin6, HIGH);
delay(5000);
digitalWrite(ledpin2, LOW);
digitalWrite(ledpin4, LOW);
digitalWrite(ledpin6, LOW);
delay(5000);
Serial.println("even on");
break;
default:
digitalWrite(ledpin2, LOW);
digitalWrite(ledpin4, LOW);
digitalWrite(ledpin6, LOW);
digitalWrite(ledpin1, LOW);
digitalWrite(ledpin3, LOW);
digitalWrite(ledpin5, LOW);
Serial.println("all LED are off");
break;
}}}
2. CREATE A PROGRAM THAT WILL DISPLAY TO THE MONITOR THE VOLTAGE
OUTPUTTED IN DIGITAL I/O PIN WHERE LED IS CONNECTED EVERY TIME YOU
ENTER THE COMMAND KEY “ VLED”. ALSO, DISPLAY IN THE MONITOR THE
VOLTAGE BEING READ AT ANALOG I/O PIN WHERE THE POTENTIOMETER IS
CONNECTED REFERENCE AT THE SUPPLY VOLTAGE EVERY TIME YOU ENTER A
COMMAND KEY “ VPOT”. (REFER TO LABORATORY ACT.#3: LIGHT DIMMER)
CODE:
int ledPin = 9;
int serial;
float brightness1;
float voltageP;
const int potentiometerPin = A0;
float potentiometerMaxValue = 5000.0;
float resistance;
float voltage;
float brightness;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600); }
void loop() {
int potentiometerValue = analogRead(potentiometerPin);
if (Serial.available()>0)
serial = Serial.read();
switch(serial)
case 'L':
resistance = 5000 - (potentiometerMaxValue/1023.0) * potentiometerValue;
brightness = potentiometerValue/4;
brightness1 = potentiometerValue/204;
voltage = (5.0 * brightness)/255.0;
voltageP = 5 - (5.0 * brightness)/255.0;
analogWrite(ledPin, brightness);
delay(1000);
Serial.print("LED Output Voltage = ");
Serial.println(brightness1);
break;
case 'P':
resistance = 5000 - (potentiometerMaxValue/1023.0) * potentiometerValue;
brightness = potentiometerValue/4;
brightness1 = potentiometerValue/204;
voltage = (5.0 * brightness)/255.0;
voltageP = 5 - (5.0 * brightness)/255.0;
analogWrite(ledPin, brightness);
delay(1000);
Serial.print("Voltage Potentiometer = ");
Serial.println(voltageP);
break;
default:
analogWrite(ledPin, LOW);
Serial.println("LED is off");
break; } } }
OBSERVATION:
THE EXPERIMENT AIMED TO ESTABLISH COMMUNICATION WITH A MICROCONTROLLER
BOARD, UTILIZING DIGITAL AND ANALOG INPUT/OUTPUT PINS TO PROMPT SPECIFIC
TASKS DISPLAYED ON A COMPUTER MONITOR AND DEMONSTRATE CORRESPONDING
OUTPUTS. BY PROGRAMMING AN ARDUINO, ACTIONS WERE INITIATED UPON INPUTTING
DESIGNATED KEYS INTO THE SERIAL MONITOR, WITH THE CAPABILITY TO READ DATA
TRANSMITTED BY THE ARDUINO. LED ACTIVATION WAS CONTROLLED THROUGH
TYPING SPECIFIC KEYS, SHOWCASING INDIVIDUAL LED ILLUMINATION WHILE
DEACTIVATING OTHERS. THROUGH THIS SETUP, THE EXPERIMENT SUCCESSFULLY
ILLUSTRATED INTERACTIVE CONTROL OVER LED OUTPUTS VIA SERIAL
COMMUNICATION, FACILITATING PRACTICAL UNDERSTANDING OF MICROCONTROLLER
FUNCTIONALITY.
CONCLUSION:
IN CONCLUSION, THE EXPERIMENT EFFECTIVELY DEMONSTRATED THE CAPABILITY TO
COMMUNICATE WITH A MICROCONTROLLER BOARD, SUCH AS THE ARDUINO, UTILIZING
BOTH DIGITAL AND ANALOG INPUT/OUTPUT PINS TO COMMAND SPECIFIC TASKS
DISPLAYED ON A COMPUTER MONITOR WHILE SHOWCASING THE ACTUAL OUTPUT. BY
PROGRAMMING THE ARDUINO TO RESPOND TO DESIGNATED KEY INPUTS VIA THE
SERIAL MONITOR, THE EXPERIMENT PROVIDED A PRACTICAL ILLUSTRATION OF
CONTROL OVER LED ACTIVATION. THE PROVIDED CODE FACILITATED THE TOGGLING
OF LEDS BASED ON USER INPUT, WITH ACCOMPANYING FEEDBACK RELAYED THROUGH
THE SERIAL MONITOR. THROUGH THIS EXPERIMENT, PARTICIPANTS GAINED INSIGHTS
INTO SERIAL COMMUNICATION PROTOCOLS, SWITCH CASE STATEMENTS, AND THE
UTILIZATION OF ARDUINO'S CAPABILITIES FOR INTERACTIVE CONTROL AND FEEDBACK
MECHANISMS. OVERALL, THE EXPERIMENT SUCCESSFULLY SHOWCASED THE
PRACTICAL APPLICATION OF MICROCONTROLLER PROGRAMMING FOR REAL-WORLD
TASKS AND PROVIDED VALUABLE HANDS-ON EXPERIENCE IN INTERFACING WITH
HARDWARE COMPONENTS.