0% found this document useful (0 votes)
13 views13 pages

Lab 6

The document contains a series of exercises in C++ for controlling LEDs using Arduino. Each exercise demonstrates different functionalities such as toggling LEDs, displaying numbers on a 7-segment display, and creating a simple clock. The code snippets include setup and loop functions to manage the LED states and timings.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
13 views13 pages

Lab 6

The document contains a series of exercises in C++ for controlling LEDs using Arduino. Each exercise demonstrates different functionalities such as toggling LEDs, displaying numbers on a 7-segment display, and creating a simple clock. The code snippets include setup and loop functions to manage the LED states and timings.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Lab 6

Exc 1:
// C++ code
// toggle 2 LEDS
void setup()
{
pinMode(0, OUTPUT);
}

void loop()
{
digitalWrite(0, HIGH);
digitalWrite(1, LOW);
delay(2000); // Wait for 2000 millisecond(s)
digitalWrite(1, HIGH);
digitalWrite(0, LOW);
delay(2000); // Wait for 2000 millisecond(s)
}

Exc 2:
// toggle 8 LEDS
void setup(){
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);

Lab 6 1
pinMode(8, OUTPUT);
}

void loop(){

for (int i = 1; i<=8; i++) {


for (int j = 1; j<=8; j++) {
if (j==i) {
digitalWrite(j, HIGH);
} else {
digitalWrite(j, LOW);
}
}
delay(2000);
}
}

Exc 3
int pinled[] = {0, 1, 2, 3, 4, 5, 6};
int led0[] = {0, -1};
int led1[] = {0, 1, 2, 4, 5, -1};
int led2[] = {1, 6, -1};
int led3[] = {1, 4, -1};
int led4[] = {2, 4, 5, -1};
int led5[] = {3, 4, -1};
int led6[] = {3, -1};
int led7[] = {0, 1, 4, 5, -1};
int led8[] = {-1};
int led9[] = {4, -1};
int* led[10] = {led0, led1, led2, led3, led4, led5, led6, led7,

void setup() {

Lab 6 2
for (int i = 0; i < 7; i++) {
pinMode(pinled[i], OUTPUT);
}
}

void clear() {
for (int i = 0; i < 7; i++) {
digitalWrite(pinled[i], LOW);
}
}

void displayNumber(int i) {
clear();
int* segment = led[i];
while (*segment != -1) {
digitalWrite(pinled[*segment], HIGH);
segment++;
}
}

void loop() {
for (int i = 0; i < 10; i++) {
displayNumber(i);
delay(1000);
}
}

Exc 4:
int pinled[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13};
int led0[] = {0, -1};
int led1[] = {0, 1, 2, 4, 5, -1};
int led2[] = {1, 6, -1};

Lab 6 3
int led3[] = {1, 4, -1};
int led4[] = {2, 4, 5, -1};
int led5[] = {3, 4, -1};
int led6[] = {3, -1};
int led7[] = {0, 1, 4, 5, -1};
int led8[] = {-1};
int led9[] = {4, -1};
int* led[10] = {led0, led1, led2, led3, led4, led5, led6, led7,

void setup() {
for (int i = 0; i < 14; i++) {
pinMode(pinled[i], OUTPUT);
}
}

void clear(int pos) {


for (int i = 7*pos; i < 7*pos +7; i++) {
digitalWrite(pinled[i], LOW);
}
}

void displayNumber(int i, int pos) {


clear(pos);
int index;
int* segment = led[i];
while (*segment != -1) {
digitalWrite(pinled[*segment+7*pos], HIGH);
segment++;
}
}

void loop() {
bool stop = false;
for (int i=0; i<10 && !stop;i++) {
displayNumber(i, 0);
for (int j = 0; j < 10; j++) {

Lab 6 4
if (i==2&&j==1) {
stop = true;
break;
}
displayNumber(j, 1);
delay(1000);
}
}
}

Exc 5:
void setup(){
for (int i = 0; i < 14; i++) {
pinMode(i, OUTPUT);
}
}

void loop(){
digitalWrite(8, HIGH);
digitalWrite(10, LOW);
delay(5000);
digitalWrite(9, HIGH);
digitalWrite(8, LOW);
delay(2000);
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
delay(3000);
}

Lab 6 5
Exc 6:
void setup(){
for (int i = 0; i < 14; i++) {
pinMode(i, OUTPUT);
}
}

void TL(int red[], int lred, int yellow[], int lyellow, int gree
for (int i=0; i<lred; i++) {
digitalWrite(red[i], HIGH);
}
for (int i=0; i<lgreen; i++) {
digitalWrite(green[i], LOW);
}
delay(5000);
for (int i=0; i<lyellow; i++) {
digitalWrite(yellow[i], HIGH);
}
for (int i=0; i<lred; i++) {
digitalWrite(red[i], LOW);
}
delay(2000);
for (int i=0; i<lgreen; i++) {
digitalWrite(green[i], HIGH);
}
for (int i=0; i<lyellow; i++) {
digitalWrite(yellow[i], LOW);
}
delay(3000);
}
void loop(){
int red[] = {8, 11};
int yellow[] = {9, 12};
int green[] = {10, 13};

Lab 6 6
TL(red, 2, yellow, 2, green, 2);
}

Exc 7:
int pinled[] = {0, 1, 2, 3, 4, 5, 6};
int led0[] = {0, -1};
int led1[] = {0, 1, 2, 4, 5, -1};
int led2[] = {1, 6, -1};
int led3[] = {1, 4, -1};
int led4[] = {2, 4, 5, -1};
int led5[] = {3, 4, -1};
int led6[] = {3, -1};
int led7[] = {0, 1, 4, 5, -1};
int led8[] = {-1};
int led9[] = {4, -1};
int* led[10] = {led0, led1, led2, led3, led4, led5, led6, led7,

void setup() {
for (int i = 0; i < 14; i++) {
pinMode(i, OUTPUT);
}
}

void clear() {
for (int i = 0; i < 7; i++) {
digitalWrite(pinled[i], LOW);
}
}

void displayNumber(int i) {
clear();
int* segment = led[i];

Lab 6 7
while (*segment != -1) {
digitalWrite(pinled[*segment], HIGH);
segment++;
}
}

void countdown(int n) {
for (int i=n; i>0;i--) {
displayNumber(i);
delay(1000);
}
}

void TL(int red[], int lred, int yellow[], int lyellow, int gree
for (int i=0; i<lred; i++) {
digitalWrite(red[i], HIGH);
}
for (int i=0; i<lgreen; i++) {
digitalWrite(green[i], LOW);
}
countdown(5);
for (int i=0; i<lyellow; i++) {
digitalWrite(yellow[i], HIGH);
}
for (int i=0; i<lred; i++) {
digitalWrite(red[i], LOW);
}
countdown(2);
for (int i=0; i<lgreen; i++) {
digitalWrite(green[i], HIGH);
}
for (int i=0; i<lyellow; i++) {
digitalWrite(yellow[i], LOW);
}
countdown(3);
}

Lab 6 8
void loop(){
int red[] = {8, 11};
int yellow[] = {9, 12};
int green[] = {10, 13};
TL(red, 2, yellow, 2, green, 2);
}

Exc 8
int second = 0;
int minute = 0;
int hour = 0;
void setup()
{
for(int i = 0; i < 12; i++){
pinMode(i, OUTPUT);
}
}

void displayOnClock(int num){


if(num <= 12){
for (int i=0; i<12; i++) {
if (i+1==num) {
digitalWrite(i, HIGH);
} else {
digitalWrite(i, LOW);
}
}
}
}
void clearClock(){
for (int i=0; i<12;i++) {
digitalWrite(i, LOW);
}
}

Lab 6 9
void loop()
{

for(int i = 0; i < 12; i++){


displayOnClock(i + 1);
delay(1000);
}
clearClock();
delay(1000); //To check if clear really works
}

Exc 9
void loop()
{
for(second = 0; second < 60; second++){
int ind = second/5;
if (ind==0) {
ind = 12;
}
clearClock();
displayOnClock(ind);
delay(1000);
}
}

Exc 10
int second = 0;
int minute = 0;
int hour = 0;

void setup() {

Lab 6 10
for (int i = 0; i < 12; i++) {
pinMode(i, OUTPUT); // Initialize all 12 pins as OUTPUT
}
}

// Function to display seconds


void displaySecond(int second) {
int ind = second / 5; // Map seconds to 5-second intervals (0-
if (ind == 0) {
ind = 12; // LED 12 represents seconds 0-4
}
displayOnClock(ind); // Light up corresponding LED for seconds
}

// Function to display minutes


void displayMinute(int minute) {
int ind = minute / 5; // Map minutes to 5-minute intervals (0-
if (ind == 0) {
ind = 12; // LED 12 represents minutes 0-4
}
displayOnClock(ind); // Light up corresponding LED for minutes
}

// Function to display hours


void displayHour(int hour) {
int ind = hour % 12; // Map hour to 12-hour clock format (1-12
if (ind == 0) {
ind = 12; // LED 12 represents 12 o'clock
}
displayOnClock(ind); // Light up corresponding LED for hours
}

// Function to clear the clock (turn off all LEDs)


void clearClock() {
for (int i = 0; i < 12; i++) {
digitalWrite(i, LOW); // Turn off all LEDs

Lab 6 11
}
}

// Function to light up a specific LED


void displayOnClock(int num) {
if (num <= 12) {
digitalWrite(num - 1, HIGH); // Turn on the target LED (adju
}
}

void loop() {
for (second = 0; second < 60; second++) {
clearClock(); // Clear the LEDs at the start of each second

// Display the hour, minute, and second


displayHour(hour);
displayMinute(minute);
displaySecond(second);

// Update minute and hour if a full minute passes


if (second == 59) {
second = -1; // Reset seconds (will become 0 on the next l
minute++; // Increment minutes

if (minute == 60) {
minute = 0; // Reset minutes
hour++; // Increment hours

if (hour == 24) {
hour = 0; // Reset hours after 24 hours
}
}
}

delay(1000); // Wait for 1 second

Lab 6 12
}
}

Lab 6 13

You might also like