0% encontró este documento útil (0 votos)
94 vistas62 páginas

Programando Con Arduino

El documento describe varios proyectos de programación Arduino relacionados con LEDs, incluyendo parpadeo de LED, luces de tráfico, efectos Chase y Fire, lámpara de estado de ánimo RGB, display de 7 segmentos para mostrar números, display de 7 segmentos de 2 dígitos, y el uso del decodificador de display de 7 segmentos IC 7447. Explica cómo implementar cada proyecto con código y circuitos de Arduino.

Cargado por

ArnoldoCon
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
94 vistas62 páginas

Programando Con Arduino

El documento describe varios proyectos de programación Arduino relacionados con LEDs, incluyendo parpadeo de LED, luces de tráfico, efectos Chase y Fire, lámpara de estado de ánimo RGB, display de 7 segmentos para mostrar números, display de 7 segmentos de 2 dígitos, y el uso del decodificador de display de 7 segmentos IC 7447. Explica cómo implementar cada proyecto con código y circuitos de Arduino.

Cargado por

ArnoldoCon
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 62

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]

También podría gustarte