Week 3
Week 3
LAB 3
LED Animations on Tinker CAD
1
digitalWrite(6,HIGH);digitalWrite(8,HIGH);delay(400);
digitalWrite(1,LOW);digitalWrite(3,LOW);
digitalWrite(5,LOW);digitalWrite(7,LOW);
digitalWrite(2,LOW);digitalWrite(4,LOW);
digitalWrite(6, LOW);digitalWrite(8, LOW); delay(400);}
for (int k=0;k<3;k++){
for (int i=1;i<9;i++){
digitalWrite(i,HIGH);digitalWrite(9-i,HIGH); delay(100);}
for (int j=1;j<9;j++){
digitalWrite(j,LOW);digitalWrite(9-j,LOW); delay(100);}}
for (int k=0;k<3;k++){
for (int i=1;i<9;i++){
digitalWrite(i+3,HIGH);digitalWrite(6-i,HIGH); delay(100);}
for (int j=1;j<9;j++){
digitalWrite(j+3,LOW);digitalWrite(6-j,LOW); delay(100);}}
for (int k=0;k<6;k++){
digitalWrite(1,HIGH);digitalWrite(2,HIGH);
digitalWrite(3,HIGH);digitalWrite(4,HIGH);
digitalWrite(5,LOW);digitalWrite(6,LOW);
digitalWrite(7, LOW);digitalWrite(8, LOW); delay(200);
digitalWrite(1,LOW);digitalWrite(2,LOW);
digitalWrite(3, LOW);digitalWrite(4, LOW);
digitalWrite(5, HIGH);digitalWrite(6, HIGH);
digitalWrite(7, HIGH);digitalWrite(8, HIGH); delay(200);}
digitalWrite(1, LOW);digitalWrite(3, LOW);
digitalWrite(5, LOW);digitalWrite(7, LOW);
digitalWrite(2, LOW);digitalWrite(4, LOW);
digitalWrite(6, LOW);digitalWrite(8, LOW); delay(200);
for (int k=0;k<1;k++){
2
for (int i=1;i<8;i++){
digitalWrite(i,HIGH);digitalWrite(i+1,HIGH);delay(400);
digitalWrite(i,LOW);digitalWrite(i+1,LOW); delay(400);}}
for (int k=0;k<1;k++){
for (int i=1;i<8;i++){
digitalWrite(9-i,HIGH);digitalWrite(8-i,HIGH); delay(400);
digitalWrite(9-i,LOW);digitalWrite(8-i,LOW); delay(400);}}
for (int k=0;k<6;k++){
digitalWrite(1, HIGH);digitalWrite(2, HIGH);
digitalWrite(5, HIGH);digitalWrite(6, HIGH);
digitalWrite(3, LOW);digitalWrite(4, LOW);
digitalWrite(7, LOW);digitalWrite(8, LOW); delay(400);
digitalWrite(1, LOW);digitalWrite(2, LOW);
digitalWrite(5, LOW);digitalWrite(6, LOW);
digitalWrite(3, HIGH);digitalWrite(4, HIGH);
digitalWrite(7, HIGH);digitalWrite(8, HIGH); delay(400);}
digitalWrite(1, LOW);digitalWrite(3, LOW);
digitalWrite(5, LOW);digitalWrite(7, LOW);
digitalWrite(2, LOW);digitalWrite(4, LOW);
digitalWrite(6, LOW);digitalWrite(8, LOW); delay(200);
for (int k=0;k<9;k++){
digitalWrite(1, HIGH);digitalWrite(3, HIGH);
digitalWrite(5, HIGH);digitalWrite(7, HIGH);
digitalWrite(2, LOW);digitalWrite(4, LOW);
digitalWrite(6, LOW);digitalWrite(8, LOW); delay(200);
digitalWrite(1, LOW);digitalWrite(3, LOW);
digitalWrite(5, LOW);digitalWrite(7, LOW);
digitalWrite(2, HIGH);digitalWrite(4, HIGH);
digitalWrite(6, HIGH);digitalWrite(8, HIGH); delay(200);}
3
digitalWrite(1, LOW);digitalWrite(3, LOW);
digitalWrite(5, LOW);digitalWrite(7, LOW);
digitalWrite(2, LOW);digitalWrite(4, LOW);
digitalWrite(6, LOW);digitalWrite(8, LOW); delay(200);
digitalWrite(1, HIGH);digitalWrite(3, HIGH);
digitalWrite(5, HIGH);digitalWrite(7, HIGH);
digitalWrite(2, HIGH);digitalWrite(4, HIGH);
digitalWrite(6, HIGH);digitalWrite(8, HIGH); delay(1000);
for (int k=0;k<1;k++){
for (int i=1;i<5;i++){
digitalWrite(i,LOW);digitalWrite(9-i,LOW); delay(1500);}} }
Exercise 3: Seven Segment LED
int pinled [] = {0,1,2,3,4,5,6};
void setup() {
for (int i = 0; i < 7; i++){
pinMode(pinled [i], OUTPUT);} }
void displayNumber(int i) {
if (i == 0){
digitalWrite(0, HIGH);digitalWrite(1, LOW);
digitalWrite(2, LOW);digitalWrite(3, LOW);
digitalWrite(4, LOW);digitalWrite(5, LOW);
digitalWrite(6, LOW);}
else if(i == 1){
digitalWrite(0, HIGH);digitalWrite(1, HIGH);
digitalWrite(2, HIGH);digitalWrite(3, LOW );
digitalWrite(4, HIGH);digitalWrite(5, HIGH);
digitalWrite(6, LOW);}
else if(i == 2){
digitalWrite(0, LOW);digitalWrite(1, HIGH);
4
digitalWrite(2, LOW);digitalWrite(3, LOW);
digitalWrite(4, LOW);digitalWrite(5, LOW);
digitalWrite(6, HIGH);}
else if(i == 3){
digitalWrite(0, LOW);digitalWrite(1, HIGH);
digitalWrite(2, LOW);digitalWrite(3, LOW);
digitalWrite(4, HIGH);digitalWrite(5, LOW);
digitalWrite(6, LOW);}
else if(i == 4){
digitalWrite(0, LOW);digitalWrite(1, LOW);
digitalWrite(2, HIGH);digitalWrite(3, LOW);
digitalWrite(4, HIGH);digitalWrite(5, HIGH);
digitalWrite(6, LOW);}
else if(i == 5){
digitalWrite(0, LOW);digitalWrite(1, LOW);
digitalWrite(2, LOW);digitalWrite(3, HIGH);
digitalWrite(4, HIGH);digitalWrite(5, LOW);
digitalWrite(6, LOW);}
else if(i == 6){
digitalWrite(0, LOW);digitalWrite(1, LOW);
digitalWrite(2, LOW);digitalWrite(3, HIGH);
digitalWrite(4, LOW);digitalWrite(5, LOW);
digitalWrite(6, LOW);}
else if(i == 7){
digitalWrite(0, HIGH);digitalWrite(1, HIGH);
digitalWrite(2, LOW);digitalWrite(3, LOW);
digitalWrite(4, HIGH);digitalWrite(5, HIGH);
digitalWrite(6, LOW);}
else if(i == 8){
5
digitalWrite(0, LOW);digitalWrite(1, LOW);
digitalWrite(2, LOW);digitalWrite(3, LOW);
digitalWrite(4, LOW);digitalWrite(5, LOW);
digitalWrite(6, LOW);}
else if(i == 9){
digitalWrite(0, LOW);digitalWrite(1, LOW);
digitalWrite(2, LOW);digitalWrite(3, LOW);
digitalWrite(4, HIGH);digitalWrite(5, LOW);
digitalWrite(6, LOW);} }
void loop() {
displayNumber(0);delay(2000);
for (int i = 0; i < 10; i++){
displayNumber(i);delay(1000);} }
Exercise 4: Two Digit Number
void setup() {
for(int i = 0; i < 14; i++){
pinMode(i, OUTPUT);} }
void loop() {
for (int a=0;a<3;a++){
if (a==0){
digitalWrite(0,HIGH);digitalWrite(1,LOW);
digitalWrite(2,LOW);digitalWrite(3,LOW);
digitalWrite(4,LOW);digitalWrite(5,LOW);
digitalWrite(6,LOW); digitalWrite(7,HIGH);
digitalWrite(8,LOW); digitalWrite(9,LOW);
digitalWrite(10,LOW); digitalWrite(11,LOW);
digitalWrite(12,LOW); digitalWrite(13,LOW);delay(1000);
for (int b=1;b<10;b++){
if (b==1){
6
digitalWrite(7,HIGH);digitalWrite(8,HIGH);
digitalWrite(9,HIGH);digitalWrite(10,LOW);
digitalWrite(11,HIGH);digitalWrite(12,HIGH);
digitalWrite(13,LOW);delay(1000);}
else if (b==2){
digitalWrite(7,LOW);digitalWrite(8,HIGH);
digitalWrite(9,LOW);digitalWrite(10,LOW);
digitalWrite(11,LOW);digitalWrite(12,LOW);
digitalWrite(13,HIGH);delay(1000);}
else if (b==3){
digitalWrite(7,LOW);digitalWrite(8,HIGH);
digitalWrite(9,LOW);digitalWrite(10,LOW);
digitalWrite(11,HIGH);digitalWrite(12,LOW);
digitalWrite(13,LOW);delay(1000);}
else if (b==4){
digitalWrite(7,LOW);digitalWrite(8,LOW);
digitalWrite(9,HIGH);digitalWrite(10,LOW);
digitalWrite(11,HIGH);digitalWrite(12,HIGH);
digitalWrite(13,LOW);delay(1000);}
else if (b==5){
digitalWrite(7,LOW);digitalWrite(8,LOW);
digitalWrite(9,LOW);digitalWrite(10,HIGH);
digitalWrite(11,HIGH);digitalWrite(12,LOW);
digitalWrite(13,LOW);delay(1000);}
else if (b==6){
digitalWrite(7,LOW);digitalWrite(8,LOW);
digitalWrite(9,LOW);digitalWrite(10,HIGH);
digitalWrite(11,LOW);digitalWrite(12,LOW);
digitalWrite(13,LOW);delay(1000);}
7
else if (b==7){
digitalWrite(7,HIGH);digitalWrite(8,HIGH);
digitalWrite(9,LOW);digitalWrite(10,LOW);
digitalWrite(11,HIGH);digitalWrite(12,HIGH);
digitalWrite(13,LOW);delay(1000);}
else if (b==8){
digitalWrite(7,LOW);digitalWrite(8,LOW);
digitalWrite(9,LOW);digitalWrite(10,LOW);
digitalWrite(11,LOW);digitalWrite(12,LOW);
digitalWrite(13,LOW);delay(1000);}
else if (b==9){
digitalWrite(7,LOW);digitalWrite(8,LOW);
digitalWrite(9,LOW);digitalWrite(10,LOW);
digitalWrite(11,HIGH);digitalWrite(12,LOW);
digitalWrite(13,LOW);delay(1000);}}}
if (a==1){
digitalWrite(0,HIGH);digitalWrite(1,HIGH);
digitalWrite(2,HIGH);digitalWrite(3,LOW);
digitalWrite(4,HIGH);digitalWrite(5,HIGH);
digitalWrite(6,LOW); digitalWrite(7,HIGH);
digitalWrite(8,LOW); digitalWrite(9,LOW);
digitalWrite(10,LOW); digitalWrite(11,LOW);
digitalWrite(12,LOW); digitalWrite(13,LOW);delay(1000);
for (int b=1;b<10;b++){
if (b==1){
digitalWrite(7,HIGH);digitalWrite(8,HIGH);
digitalWrite(9,HIGH);digitalWrite(10,LOW);
digitalWrite(11,HIGH);digitalWrite(12,HIGH);
digitalWrite(13,LOW);delay(1000);}
8
else if (b==2){
digitalWrite(7,LOW);digitalWrite(8,HIGH);
digitalWrite(9,LOW);digitalWrite(10,LOW);
digitalWrite(11,LOW);digitalWrite(12,LOW);
digitalWrite(13,HIGH);delay(1000);}
else if (b==3){
digitalWrite(7,LOW);digitalWrite(8,HIGH);
digitalWrite(9,LOW);digitalWrite(10,LOW);
digitalWrite(11,HIGH);digitalWrite(12,LOW);
digitalWrite(13,LOW);delay(1000);}
else if (b==4){
digitalWrite(7,LOW);digitalWrite(8,LOW);
digitalWrite(9,HIGH);digitalWrite(10,LOW);
digitalWrite(11,HIGH);digitalWrite(12,HIGH);
digitalWrite(13,LOW);delay(1000);}
else if (b==5){
digitalWrite(7,LOW);digitalWrite(8,LOW);
digitalWrite(9,LOW);digitalWrite(10,HIGH);
digitalWrite(11,HIGH);digitalWrite(12,LOW);
digitalWrite(13,LOW);delay(1000);}
else if (b==6){
digitalWrite(7,LOW);digitalWrite(8,LOW);
digitalWrite(9,LOW);digitalWrite(10,HIGH);
digitalWrite(11,LOW);digitalWrite(12,LOW);
digitalWrite(13,LOW);delay(1000);}
else if (b==7){
digitalWrite(7,HIGH);digitalWrite(8,HIGH);
digitalWrite(9,LOW);digitalWrite(10,LOW);
digitalWrite(11,HIGH);digitalWrite(12,HIGH);
9
digitalWrite(13,LOW);delay(1000);}
else if (b==8){
digitalWrite(7,LOW);digitalWrite(8,LOW);
digitalWrite(9,LOW);digitalWrite(10,LOW);
digitalWrite(11,LOW);digitalWrite(12,LOW);
digitalWrite(13,LOW);delay(1000);}
else if (b==9){
digitalWrite(7,LOW);digitalWrite(8,LOW);
digitalWrite(9,LOW);digitalWrite(10,LOW);
digitalWrite(11,HIGH);digitalWrite(12,LOW);
digitalWrite(13,LOW);delay(1000);}}}
if (a==2){
digitalWrite(0,LOW);digitalWrite(1,HIGH);
digitalWrite(2,LOW);digitalWrite(3,LOW);
digitalWrite(4,LOW);digitalWrite(5,LOW);
digitalWrite(6,HIGH); digitalWrite(7,HIGH);
digitalWrite(8,LOW); digitalWrite(9,LOW);
digitalWrite(10,LOW); digitalWrite(11,LOW);
digitalWrite(12,LOW); digitalWrite(13,LOW);delay(1000);}} }
Exercise 5: One Way Traffic Light
void setup() {
for (int i = 0; i < 14; i++){
pinMode(i, OUTPUT);} }
void loop() {
for (int i = 0; i < 3; i++){
if (i==0){
digitalWrite(8, HIGH);delay(5000); digitalWrite(8, LOW);}
if (i==1){
digitalWrite(9,HIGH);delay(2000); digitalWrite(9, LOW);}
10
if (i==2){
digitalWrite(10,HIGH);delay(3000); digitalWrite(10, LOW);}} }
Exercise 6: Two Way Traffic Light
void setup(){
pinMode(i, OUTPUT);} }
void loop(){
digitalWrite(8,LOW);digitalWrite(12,LOW);
pinMode(i, OUTPUT);} }
void loop(){
digitalWrite(6, LOW);delay(1000);
11
digitalWrite(2, LOW);digitalWrite(3, LOW);
digitalWrite(6, LOW);delay(1000);
digitalWrite(6, HIGH);delay(1000);
digitalWrite(6, LOW);delay(1000);
digitalWrite(0,HIGH);digitalWrite(1,LOW);
digitalWrite(2,LOW);digitalWrite(3,LOW);
digitalWrite(4,LOW);digitalWrite(5,LOW);
digitalWrite(6,LOW);delay(1000);
digitalWrite(8,LOW);digitalWrite(12, LOW);
digitalWrite(6, HIGH);delay(1000);
12
digitalWrite(2, HIGH);digitalWrite(3, LOW );
digitalWrite(6, LOW);delay(1000);
digitalWrite(0,HIGH);digitalWrite(1,LOW);
digitalWrite(2,LOW);digitalWrite(3,LOW);
digitalWrite(4,LOW);digitalWrite(5,LOW);
digitalWrite(6,LOW);delay(1000);
digitalWrite(6, LOW);delay(1000);
digitalWrite(0,HIGH);digitalWrite(1,LOW);
digitalWrite(2,LOW);digitalWrite(3,LOW);
digitalWrite(4,LOW);digitalWrite(5,LOW);
digitalWrite(6,LOW);delay(1000);
13
void clearClock(){
for (int j=0;j<12;j++)
digitalWrite(j,LOW);}
void loop() {
for(int i = 0; i < 12; i++){
displayOnClock(i + 1);delay(1000);}clearClock(); }
Exercise 9: Analog Clock with Second
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<5)digitalWrite(11,HIGH);else if (num<10)digitalWrite(0,HIGH);
else if (num<15)digitalWrite(1,HIGH);else if (num<20)digitalWrite(2,HIGH);
else if (num<25)digitalWrite(3,HIGH);else if (num<30)digitalWrite(4,HIGH);
else if (num<35)digitalWrite(5,HIGH);else if (num<40)digitalWrite(6,HIGH);
else if (num<45)digitalWrite(7,HIGH);else if (num<50)digitalWrite(8,HIGH);
else if (num<55)digitalWrite(9,HIGH);else if (num<60)digitalWrite(10,HIGH);}
void clearClock(){
for (int j=0;j<12;j++)
digitalWrite(j,LOW);}
void loop() {
for(int i = 0; i < 60; i++){
displayOnClock(i);delay(1000);clearClock();} }
Exercise 10: Finalize the Analog Clock
int i,s,m,h,xoa,gio,phut,giay;
void setup(){
for(i=0;i<12;i++)
pinMode(i,OUTPUT);}
14
void hamgio(int gio){
if(gio<1) digitalWrite(11,HIGH);else if(gio<2) digitalWrite(0,HIGH);
else if(gio<3) digitalWrite(1,HIGH);else if(gio<4) digitalWrite(2,HIGH);
else if(gio<5) digitalWrite(3,HIGH);else if(gio<6) digitalWrite(4,HIGH);
else if(gio<7) digitalWrite(5,HIGH);else if(gio<8) digitalWrite(6,HIGH);
else if(gio<9) digitalWrite(7,HIGH);else if(gio<10) digitalWrite(8,HIGH);
else if(gio<11) digitalWrite(9,HIGH);else if(gio<12) digitalWrite(10,HIGH);}
void hamphut(int phut){
if(phut<5) digitalWrite(11,HIGH);else if(phut<10) digitalWrite(0,HIGH);
else if(phut<15) digitalWrite(1,HIGH);else if(phut<20) digitalWrite(2,HIGH);
else if(phut<25) digitalWrite(3,HIGH);else if(phut<30) digitalWrite(4,HIGH);
else if(phut<35) digitalWrite(5,HIGH);else if(phut<40) digitalWrite(6,HIGH);
else if(phut<45) digitalWrite(7,HIGH);else if(phut<50) digitalWrite(8,HIGH);
else if(phut<55) digitalWrite(9,HIGH);else if(phut<60) digitalWrite(10,HIGH);}
void hamgiay(int giay){
if(giay<5) digitalWrite(11,HIGH);else if(giay<10) digitalWrite(0,HIGH);
else if(giay<15) digitalWrite(1,HIGH);else if(giay<20) digitalWrite(2,HIGH);
else if(giay<25) digitalWrite(3,HIGH);else if(giay<30) digitalWrite(4,HIGH);
else if(giay<35) digitalWrite(5,HIGH);else if(giay<40) digitalWrite(6,HIGH);
else if(giay<45) digitalWrite(7,HIGH);else if(giay<50) digitalWrite(8,HIGH);
else if(giay<55) digitalWrite(9,HIGH);else if(giay<60) digitalWrite(10,HIGH);}
void hamxoa(int xoa){
if(xoa<5) digitalWrite(11,LOW);else if(xoa<10) digitalWrite(0,LOW);
else if(xoa<15) digitalWrite(1,LOW);else if(xoa<20) digitalWrite(2,LOW);
else if(xoa<25) digitalWrite(3,LOW);else if(xoa<30) digitalWrite(4,LOW);
else if(xoa<35) digitalWrite(5,LOW);else if(xoa<40) digitalWrite(6,LOW);
else if(xoa<45) digitalWrite(7,LOW);else if(xoa<50) digitalWrite(8,LOW);
else if(xoa<55) digitalWrite(9,LOW);else if(xoa<60) digitalWrite(10,LOW);}
void loop(){
15
for(h=0;h<12;h++){
hamgio(h);
for(m=0;m<60;m++){
hamphut(m);
for(s=0;s<60;s++){
hamgiay(s);delay(1000);hamxoa(s);hamphut(m);hamgio(h);}}}}
16