Está en la página 1de 62

PRAKTEK PEMROGRAMAN

ARDUINO 1

Drs.Dedi Supardi,MM
SMK Negeri 4 Jakarta
BLINKING LED

Email:dedidudedo@yahoo.com
BLINKING DENGAN PENGULANGAN

Email:dedidudedo@yahoo.com
BLINKING DENGAN PENGULANGAN

DIULANG 3 X

Email:dedidudedo@yahoo.com
TRAFFIC LIGHT

Email:dedidudedo@yahoo.com
TRAFFIC LGHT

Email:dedidudedo@yahoo.com
PENYEBRANGAN DI TRAFFIC LIGHT

Email:dedidudedo@yahoo.com
PENYEBRANGAN DI TRAFFIC LIGHT

Email:dedidudedo@yahoo.com
PENYEBRANGAN DI TRAFFIC LIGHT

Email:dedidudedo@yahoo.com
CHASE EFFECT LED

Email:dedidudedo@yahoo.com
CHASE EFFECT LED

Email:dedidudedo@yahoo.com
CHASE EFFECT LED

Email:dedidudedo@yahoo.com
CHASE EFFECT DENGAN POTENSIO

Email:dedidudedo@yahoo.com
CHASE EFFECT DENGAN POTENSIO

Email:dedidudedo@yahoo.com
BERKEDIP DENGAN PWM

Email:dedidudedo@yahoo.com
BERKEDIP DENGAN PWM

Email:dedidudedo@yahoo.com
RGB MOOD LAMP

Email:dedidudedo@yahoo.com
RGB MOOD LAMP

Email:dedidudedo@yahoo.com
FIRE EFFECT

Email:dedidudedo@yahoo.com
FIRE EFFECT

Email:dedidudedo@yahoo.com
SEVEN SEGMENT

Email:dedidudedo@yahoo.com
SEVEN SEGMENT

NO A B C D E F G
0 HIGH HIGH HIGH HIGH HIGH HIGH LOW
1 LOW HIGH HIGH LOW LOW LOW LOW
2 HIGH HIGH LOW HIGH HIGH LOW HIGH
3 HIGH HIGH HIGH HIGH LOW LOW HIGH
4 LOW HIGH HIGH LOW LOW HIGH HIGH
5 HIGH LOW HIGH HIGH LOW HIGH HIGH
6 HIGH LOW HIGH HIGH HIGH HIGH HIGH
7 HIGH HIGH HIGH LOW LOW LOW LOW
8 HIGH HIGH HIGH HIGH HIGH HIGH HIGH
9 HIGH HIGH HIGH HIGH LOW HIGH HIGH
Email:dedidudedo@yahoo.com
SEVEN SEGMENT

Email:dedidudedo@yahoo.com
SEVEN SEGMENT

Email:dedidudedo@yahoo.com
0-9 SEVEN SEGMENT BERKEDIP

Email:dedidudedo@yahoo.com
SEVEN SEGMENT DENGAN BUZZER

Email:dedidudedo@yahoo.com
SEVEN SEGMENT DENGAN BUZZER

Email:dedidudedo@yahoo.com
SEVEN SEGMENT DENGAN ARRAY

Email:dedidudedo@yahoo.com
MENYALAKAN SEGMENT PER SEGMENT

Email:dedidudedo@yahoo.com
SEVEN SEGMENT DENGAN SAKLAR

Email:dedidudedo@yahoo.com
SEVEN SEGMENT DENGAN SAKLAR

Email:dedidudedo@yahoo.com
SEVEN SEGMENT DENGAN SAKLAR UP/DOWN

SEGMENT A B C DOT D E F G
PIN 2 3 4 5 6 7 8 9

Email:dedidudedo@yahoo.com
SEVEN SEGMENT DENGAN SAKLAR UP/DOWN

Email:dedidudedo@yahoo.com
SEVEN SEGMENT DENGAN SAKLAR UP/DOWN

Email:dedidudedo@yahoo.com
2 DIGIT SEVEN SEGMENT

Email:dedidudedo@yahoo.com
2 DIGIT SEVEN SEGMENT

Email:dedidudedo@yahoo.com
2 DIGIT SEVEN SEGMENT

Email:dedidudedo@yahoo.com
2 DIGIT SEVEN SEGMENT

Email:dedidudedo@yahoo.com
2 DIGIT SEVEN SEGMENT

Email:dedidudedo@yahoo.com
2 DIGIT SEVEN SEGMENT
// Original author: Natalia Fargasch Norman
// Dual seven-segment LED Display adapted to fit KPD-3261B
// Common Anode digit 1 pin 10
// Common Anode digit 2 pin 5
// Modifications made by: Israel J. Lopez Toledo
// CA1 B C E D
// | | | | | -> pins and segments they control
// --------- ---------
// | A | | A |
// F| |B F| |B
// |---G---| |---G---|
// E| |C E| |C
// | D | | D |
// --------- ---------
// | | | | | -> pins and segments they control
// G DP A F CA2
// Segments that make each number when lit:
// 0 => -FEDCBA
// 1 => ----BC-
// 2 => G-ED-BA
// 3 => G--DCBA
// 4 => GF--CB-
// 5 => GF-DC-A
// 6 => GFEDC-A
// 7 => ----CBA
// 8 => GFEDCBA
// 9 => GF-DCBA
// Arduino digital pins used to light up
// corresponding segments on the LED display

Email:dedidudedo@yahoo.com
2 DIGIT SEVEN SEGMENT

Email:dedidudedo@yahoo.com
IC 7447 (DECODER SEVEN SEGMENT)

INPUT
OUTPUT
D C B A
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 8
1 0 0 1 9

Email:dedidudedo@yahoo.com
IC 7447 (DECODER SEVEN SEGMENT)

Email:dedidudedo@yahoo.com
IC 7447 (DECODER SEVEN SEGMENT)

Email:dedidudedo@yahoo.com
IC 7447 (DECODER SEVEN SEGMENT)

Email:dedidudedo@yahoo.com
IC 7447 (DECODER SEVEN SEGMENT)

Email:dedidudedo@yahoo.com
IC 7447 (DECODER SEVEN SEGMENT)

Email:dedidudedo@yahoo.com
IC 7447 (DECODER SEVEN SEGMENT)
/*
Digital Voltmeter using 4-Digit 7-segment Display
*/

#include <TimerOne.h>

//Define 74HC595 Connections with arduino


const int Data=7;
const int Clock=8;
const int Latch=6;

const int SEG0=5;


const int SEG1=4;
const int SEG2=3;
const int SEG3=2;

int cc=0;
char Value[4];

//Refer Table 4.1 7-Segment Decoding


const char
SegData[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x0
7,0x7F,0x6F};

Email:dedidudedo@yahoo.com
IC 7447 (DECODER SEVEN SEGMENT)
//=============================================================
// Setup
//=============================================================
void setup() {
// initialize the digital pin as an output.
Serial.begin(9600);
pinMode(Data, OUTPUT);
pinMode(Clock, OUTPUT);
pinMode(Latch, OUTPUT);
pinMode(SEG0, OUTPUT);
pinMode(SEG1, OUTPUT);
pinMode(SEG2, OUTPUT);
pinMode(SEG3, OUTPUT);

//Initialize Display Scanner


cc=0;
Timer1.initialize(50000); // set a timer of length 100000 microseconds (or 0.1 sec - or 10Hz =>
the led will blink 5 times, 5 cycles of on-and-off, per second)
Timer1.attachInterrupt( timerIsr ); // attach the service routine here
}

Email:dedidudedo@yahoo.com
IC 7447 (DECODER SEVEN SEGMENT)
//=============================================================
// Loop
//=============================================================
void loop() {
char Volt[4];
int Voltage=analogRead(A0);
//To get fixed point decimal point we multiply it by 100
Voltage = (500/1024.0) * Voltage; //Scaling of 0 to 5V i.e. 0 to 1023 to 0 to 10 (in 10 steps)

//Display Voltage on Segments


sprintf(Volt,"%04d",Voltage); //We get ASCII array in Volt
Serial.println(Volt);

Value[0]=Volt[0] & 0x0F; //Anding with 0x0F to remove upper nibble


Value[1]=Volt[1] & 0x0F; //Ex. number 2 in ASCII is 0x32 we want only 2
Value[2]=Volt[2] & 0x0F;
Value[3]=Volt[3] & 0x0F;
delay(200);
}

Email:dedidudedo@yahoo.com
IC 7447 (DECODER SEVEN SEGMENT)
//=============================================================
// Generates Bargraph
//=============================================================
void DisplayDigit(char d)
{
int i;

for(i=0;i<8;i++) //Shift bit by bit data in shift register


{
if((d & 0x80)==0x80)
{
digitalWrite(Data,HIGH);
}
else
{
digitalWrite(Data,LOW);
}
d=d<<1;

//Give Clock pulse


digitalWrite(Clock,LOW);
digitalWrite(Clock,HIGH);
}
//Latch the data
digitalWrite(Latch,LOW);
digitalWrite(Latch,HIGH);
}
Email:dedidudedo@yahoo.com
IC 7447 (DECODER SEVEN SEGMENT)
//===================================================================
// TIMER 1 OVERFLOW INTTERRUPT FOR DISPALY
//===================================================================
void timerIsr()
{
cc++;
if(cc==5) //We have only 4 digits
{cc=1;}
Scanner();
TCNT0=0xCC;
}

//===================================================================
// SCAN DISPLAY FUNCTION
//===================================================================
void Scanner()
{

Email:dedidudedo@yahoo.com
IC 7447 (DECODER SEVEN SEGMENT)
switch (cc) //Depending on which digit is selcted give output
{
case 1:
digitalWrite(SEG3,HIGH);
DisplayDigit(SegData[Value[0]]);
digitalWrite(SEG0,LOW);
break;
case 2:
digitalWrite(SEG0,HIGH);
DisplayDigit(SegData[Value[1]] | 0x80); //0x80 to turn on decimal point
digitalWrite(SEG1,LOW);
break;
case 3:
digitalWrite(SEG1,HIGH);
DisplayDigit(SegData[Value[2]]);
digitalWrite(SEG2,LOW);
break;
case 4:
digitalWrite(SEG2,HIGH);
DisplayDigit(SegData[Value[3]]);
digitalWrite(SEG3,LOW);
break;
}
}
//===================================================================

Email:dedidudedo@yahoo.com
IC 74HC595 (SHIFT REGISTER)

Email:dedidudedo@yahoo.com
IC 74HC595 (SHIFT REGISTER)

Email:dedidudedo@yahoo.com
IC 74HC595 (SHIFT REGISTER)

Email:dedidudedo@yahoo.com
IC 74HC595 (SHIFT REGISTER)

Email:dedidudedo@yahoo.com
IC 74HC595 (SHIFT REGISTER)

void loop() void ClearBuffer()


int RCLK = 5; { {
int SER = 6; for(int i = TotalICPins - 1; i >= 0; i--) for(int i = TotalICPins - 1; i >= 0; i--)
int SRCLK = 7; { {
Data[i] = HIGH; Data[i] = LOW;
#define TotalIC 1 UpdateData(); }
#define TotalICPins TotalIC * 8 delay(300); UpdateData();
ClearBuffer(); }
boolean Data[TotalICPins]; }
void UpdateData()
void setup() for(int i = 1;i < TotalICPins - 1; i++) {
{ { digitalWrite(RCLK, LOW);
pinMode(SER, OUTPUT); Data[i] = HIGH; for(int i = TotalICPins - 1; i >= 0; i--)
pinMode(RCLK, OUTPUT); UpdateData(); {
pinMode(SRCLK, OUTPUT); delay(300); digitalWrite(SRCLK, LOW);
ClearBuffer(); digitalWrite(SER, Data[i]);
ClearBuffer(); } digitalWrite(SRCLK, HIGH);
}
} }
digitalWrite(RCLK, HIGH);
}

Email:dedidudedo@yahoo.com
HASIL PROGRAM 74HC595

Email:dedidudedo@yahoo.com
PARALEL 2 BUAH 74HC595

Email:dedidudedo@yahoo.com
DUA BUAH 74HC595

Email:dedidudedo@yahoo.com
4 BUAH 74HC595 (SHIFT REGISTER)

Email:dedidudedo@yahoo.com

También podría gustarte