PRAKTEK PEMROGRAMAN
ARDUINO 1
Drs.Dedi Supardi,MM
SMK Negeri 4 Jakarta
BLINKING LED
Email:[email protected]
BLINKING DENGAN PENGULANGAN
Email:[email protected]
BLINKING DENGAN PENGULANGAN
DIULANG 3 X
Email:[email protected]
TRAFFIC LIGHT
Email:[email protected]
TRAFFIC LGHT
Email:[email protected]
PENYEBRANGAN DI TRAFFIC LIGHT
Email:[email protected]
PENYEBRANGAN DI TRAFFIC LIGHT
Email:[email protected]
PENYEBRANGAN DI TRAFFIC LIGHT
Email:[email protected]
CHASE EFFECT LED
Email:[email protected]
CHASE EFFECT LED
Email:[email protected]
CHASE EFFECT LED
Email:[email protected]
CHASE EFFECT DENGAN POTENSIO
Email:[email protected]
CHASE EFFECT DENGAN POTENSIO
Email:[email protected]
BERKEDIP DENGAN PWM
Email:[email protected]
BERKEDIP DENGAN PWM
Email:[email protected]
RGB MOOD LAMP
Email:[email protected]
RGB MOOD LAMP
Email:[email protected]
FIRE EFFECT
Email:[email protected]
FIRE EFFECT
Email:[email protected]
SEVEN SEGMENT
Email:[email protected]
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:[email protected]
SEVEN SEGMENT
Email:[email protected]
SEVEN SEGMENT
Email:[email protected]
0-9 SEVEN SEGMENT BERKEDIP
Email:[email protected]
SEVEN SEGMENT DENGAN BUZZER
Email:[email protected]
SEVEN SEGMENT DENGAN BUZZER
Email:[email protected]
SEVEN SEGMENT DENGAN ARRAY
Email:[email protected]
MENYALAKAN SEGMENT PER SEGMENT
Email:[email protected]
SEVEN SEGMENT DENGAN SAKLAR
Email:[email protected]
SEVEN SEGMENT DENGAN SAKLAR
Email:[email protected]
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:[email protected]
SEVEN SEGMENT DENGAN SAKLAR UP/DOWN
Email:[email protected]
SEVEN SEGMENT DENGAN SAKLAR UP/DOWN
Email:[email protected]
2 DIGIT SEVEN SEGMENT
Email:[email protected]
2 DIGIT SEVEN SEGMENT
Email:[email protected]
2 DIGIT SEVEN SEGMENT
Email:[email protected]
2 DIGIT SEVEN SEGMENT
Email:[email protected]
2 DIGIT SEVEN SEGMENT
Email:[email protected]
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:[email protected]
2 DIGIT SEVEN SEGMENT
Email:[email protected]
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:[email protected]
IC 7447 (DECODER SEVEN SEGMENT)
Email:[email protected]
IC 7447 (DECODER SEVEN SEGMENT)
Email:[email protected]
IC 7447 (DECODER SEVEN SEGMENT)
Email:[email protected]
IC 7447 (DECODER SEVEN SEGMENT)
Email:[email protected]
IC 7447 (DECODER SEVEN SEGMENT)
Email:[email protected]
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:[email protected]
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:[email protected]
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:[email protected]
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:
[email protected] 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:[email protected]
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:[email protected]
IC 74HC595 (SHIFT REGISTER)
Email:[email protected]
IC 74HC595 (SHIFT REGISTER)
Email:[email protected]
IC 74HC595 (SHIFT REGISTER)
Email:[email protected]
IC 74HC595 (SHIFT REGISTER)
Email:[email protected]
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:[email protected]
HASIL PROGRAM 74HC595
Email:[email protected]
PARALEL 2 BUAH 74HC595
Email:[email protected]
DUA BUAH 74HC595
Email:[email protected]
4 BUAH 74HC595 (SHIFT REGISTER)
Email:[email protected]