Controlar un Led RGB desde el Arduino, vía PWM con 3 potenciómetros, uno para cada color.
jueves, 20 de marzo de 2014
Laboratorio 7
Controlar desde el Arduino, un Display LED de 7-Segmentos, a través de un IC 74HC595, para mostrar un número de 0 a 9, dependiendo de la posición del Potenciómetro.
Elementos Utilizados:
* Resistencia
*Arduino UNO
*Protoboard
*Pelacable*Cable
*Cable USB
*IC 74HC595
*Display LED de 7-Segmentos
Diagramas montaje en la Protoboard
Diagrama Esquemático del Circuito
Fotos del montaje
Vídeo Funcionamiento
Codigos...
Laboratorio 6
Controlar 8 LEDs desde el Arduino, a través de un IC 74HC595, definiendo mínimo 8 patrones de movimiento que son controlados desde una interfaz gráfica en Processing/ControlP5. Más información sobre el IC 74HC595
Elementos Utilizados
*8 Led's
*8 Resistencias
*1 Arduino UNO
*Protoboard
*Pelacable*Cables
*Cable USB
*IC 74HC595
Diagrama del montaje en la Protoboard
Diagrama Esquemático del Circuito
Fotos del Montaje
Vídeo Funcionamiento
Codigo Fuente Arduino
- #define PIN 3
- const int Latch = 8;
- const int Clock = 9;
- const int Data = 7;
- int Pins[PIN] = {
- 7,8,9};
- int Lect = 0;
- boolean OnLed = false;
- int Dato = 0;
- int i = 0;
- int Led[]={1,2,4,8,16,32,64,128};
- void setup() {
- for (int j=0; j<PIN; j++){
- pinMode(Pins[j], OUTPUT);
- }
- Serial.begin(9600);
- }
- void loop()
- {
- if (Serial.available()>0) {
- Lect = Serial.read(); //Leemos el Dato
- if (OnLed)
- {
- Suma(Lect);
- On(Dato);
- OnLed = false;
- }
- else
- {
- i = Lect;
- OnLed = true;
- }
- }
- }
- void Suma(int estadoLED){
- if(estadoLED==0)
- {
- Dato = Dato-Led[i];
- }else{
- Dato = Dato+Led[i];
- }
- }
- void On(int Valor)
- {
- digitalWrite(Latch, LOW);
- shiftOut(Data, Clock, MSBFIRST, Valor);
- digitalWrite(Latch, HIGH);
- }
Codigo Proccesing
- import controlP5.*;
- import processing.serial.*;
- ControlP5 cP5;
- Serial serial;
- int[] led = new int[] {
- 0, 0, 0, 0, 0, 0, 0, 0
- };
- void setup() {
- size(590, 250); //Tamaño de la ventana
- noStroke();
- cP5 = new ControlP5(this); //Crea el objeto ControlP5
- // Crea el Knob del color Rojo
- for (int i=0; i<led.length; i++)
- {
- cP5.addToggle("led"+i, 35+i*70, 140, 30, 30)
- .setMode(ControlP5.SWITCH);
- }
- String puerto = Serial.list()[0];
- serial = new Serial(this, puerto, 9600);
- }
- void draw() {
- background(0xFF444444);
- fill(led[0] == 0 ? 0xFF222222 : color(255, 255, 0));
- ellipse(50, 100, 50, 50);
- for (int i=1; i<4; i++) {
- fill(led[i] == 0 ? 0xFF222222 : color(255, 0, 0));
- ellipse(50+i*70, 100, 50, 50);
- }
- for (int i=4; i<led.length; i++) {
- fill(led[i] == 0 ? 0xFF222222 : color(0, 255, 0));
- ellipse(50+i*70, 100, 50, 50);
- }
- fill(255);
- textFont(createFont("Gill Sans Ultra Bold", 50));
- text("Enciende un LED", 40, 50);
- fill(255);
- textSize(25);
- text("", 120, 230);
- }
- /
- void controlEvent(ControlEvent evento) {
- String nombre = evento.getController().getName();
- int valor = int(evento.getController().getValue());
- // Guarda el valor de cada boton
- for (int i=0; i<led.length; i++) {
- if (nombre.equals("led"+i)) {
- led[i] = valor;
- serial.write(i);
- serial.write(valor);
- println("evento: " + i + " / valor: "+valor);
- }
- }
- }
jueves, 13 de marzo de 2014
Laboratorio 4
Controlar un Led RGB desde el Arduino, via PWM con 3 potenciómetros, uno para cada color.
Lista Elementos Utilizados
Cables
Pelacable
Resistencia
Led RGB
Arduino UNO
Cable USB
Potenciómetros
Protoboard
Diagrama Montaje en Protoboard
Diagrama Esquemático del Circuito
Fotos Del Montaje
Vídeo Funcionamiento
Lista Elementos Utilizados
Cables
Pelacable
Resistencia
Led RGB
Arduino UNO
Cable USB
Potenciómetros
Protoboard
Diagrama Montaje en Protoboard
Diagrama Esquemático del Circuito
Fotos Del Montaje
Vídeo Funcionamiento
Laboratorio 3
Controlar 8 led's desde el arduino, un led encendido que se mueve en forma continua de izquierda a derecha, via una interfaz grafica en Processing/Control P% para controlar el tiempo de encendido y el tiempo de apagado.
Lista de Elementos Utilizados
Resistencias
Leds
Cables
Pelacable
Protoboard
Arduino UNO
Cable USB
Diagrama del Montaje en la Protoboard
Diagrama Esquemático del Circuito
Fotos del Montaje
Vídeo Funcionamiento
Codigo fuente Arduino
#define maxleds 8
int t1=0;
int t2=0;
int valor=0;
int led[maxleds] = {13,12,11,10,9,8,7,6};
int i;
void setup ()
{
Serial.begin(9600);
for (int i=0;i<maxleds;i++)
pinMode(led[i],OUTPUT);
}
void loop()
{
for (int i=0;i<=maxleds;i++)
{
if (Serial.available()>0)
{
valor = Serial.read();
if (valor == 'O')
t1 = Serial.parseInt();
if (valor == 'F')
t2 = Serial.parseInt();
}
prender(led[i],t1);
apagar(led[i],t2);
}
for (int i=maxleds-1;i>=0;i--)
{
if (Serial.available()>0)
{
valor = Serial.read();
if (valor == 'O')
t1 = Serial.parseInt();
if (valor == 'F')
t2 = Serial.parseInt();
}
prender(led[i],t1);
apagar(led[i],t2);
}
}
void prender(int i, int t)
{
digitalWrite(i, HIGH);
delay(t);
}
void apagar(int i, int t)
{
digitalWrite(i, LOW);
delay(t);
}
Codigo Processing
import controlP5.*;
import processing.serial.*;
ControlP5 cp5;
Slider slider1;
Slider slider2;
Serial serial;
Textlabel texto1, texto2, texto3, texto4;
Textlabel texto5, texto6;
void setup()
{
serial = new Serial(this, Serial.list()[0],9600);
String puerto = Serial.list()[0];
size(750,330);
cp5 = new ControlP5(this);
slider1 = cp5.addSlider("O",0,1000,500,40,150,300,40);
slider1.setColor(new CColor(0xFF00FF00,0xFF555555,0xFF009F00,0xFFFFFFFF,0xFFFFFFFF));
slider1.setLabelVisible(false);
slider2 = cp5.addSlider("F",0,1000,500,400,150,300,40);
slider2.setColor(new CColor(0xFF00FF00,0xFF555555,0xFF009F00,0xFFFFFFFF,0xFFFFFFFF));
slider2.setLabelVisible(false);
texto1 = cp5.addTextlabel("label")
.setText("LABORATORIO TRES")
.setPosition(210,50)
.setColorValue(0xffffffFF)
.setFont(createFont("Comic Sans MS",30))
;
texto2 = cp5.addTextlabel("label1")
.setText("TIEMPO ENCENDIDO (ms)")
.setPosition(90,120)
.setColorValue(0xffffffFF)
.setFont(createFont("Comic Sans MS",15))
;
texto3 = cp5.addTextlabel("label2")
.setText("TIEMPO APAGADO (ms)")
.setPosition(460,120)
.setColorValue(0xffffffFF)
.setFont(createFont("Comic Sans MS",15))
;
//nombre de estudiante
texto4 = new Textlabel(cp5,"Estudiante: jesus lopez \nTecnologia Industrial",40,230,600,200);
texto4.setFont(createFont("verdana",15));
// programa
}
void draw()
{
background(0,0,0);
texto4.draw(this);
}
void controlEvent (ControlEvent evento)
{
String nombre = evento.getController().getName();
int valor = int(evento.getController().getValue());
serial.write(nombre + ":" + valor);
println(nombre + ":" + valor);
}
Lista de Elementos Utilizados
Resistencias
Leds
Cables
Pelacable
Protoboard
Arduino UNO
Cable USB
Diagrama del Montaje en la Protoboard
Diagrama Esquemático del Circuito
Fotos del Montaje
Vídeo Funcionamiento
Codigo fuente Arduino
#define maxleds 8
int t1=0;
int t2=0;
int valor=0;
int led[maxleds] = {13,12,11,10,9,8,7,6};
int i;
void setup ()
{
Serial.begin(9600);
for (int i=0;i<maxleds;i++)
pinMode(led[i],OUTPUT);
}
void loop()
{
for (int i=0;i<=maxleds;i++)
{
if (Serial.available()>0)
{
valor = Serial.read();
if (valor == 'O')
t1 = Serial.parseInt();
if (valor == 'F')
t2 = Serial.parseInt();
}
prender(led[i],t1);
apagar(led[i],t2);
}
for (int i=maxleds-1;i>=0;i--)
{
if (Serial.available()>0)
{
valor = Serial.read();
if (valor == 'O')
t1 = Serial.parseInt();
if (valor == 'F')
t2 = Serial.parseInt();
}
prender(led[i],t1);
apagar(led[i],t2);
}
}
void prender(int i, int t)
{
digitalWrite(i, HIGH);
delay(t);
}
void apagar(int i, int t)
{
digitalWrite(i, LOW);
delay(t);
}
Codigo Processing
import controlP5.*;
import processing.serial.*;
ControlP5 cp5;
Slider slider1;
Slider slider2;
Serial serial;
Textlabel texto1, texto2, texto3, texto4;
Textlabel texto5, texto6;
void setup()
{
serial = new Serial(this, Serial.list()[0],9600);
String puerto = Serial.list()[0];
size(750,330);
cp5 = new ControlP5(this);
slider1 = cp5.addSlider("O",0,1000,500,40,150,300,40);
slider1.setColor(new CColor(0xFF00FF00,0xFF555555,0xFF009F00,0xFFFFFFFF,0xFFFFFFFF));
slider1.setLabelVisible(false);
slider2 = cp5.addSlider("F",0,1000,500,400,150,300,40);
slider2.setColor(new CColor(0xFF00FF00,0xFF555555,0xFF009F00,0xFFFFFFFF,0xFFFFFFFF));
slider2.setLabelVisible(false);
texto1 = cp5.addTextlabel("label")
.setText("LABORATORIO TRES")
.setPosition(210,50)
.setColorValue(0xffffffFF)
.setFont(createFont("Comic Sans MS",30))
;
texto2 = cp5.addTextlabel("label1")
.setText("TIEMPO ENCENDIDO (ms)")
.setPosition(90,120)
.setColorValue(0xffffffFF)
.setFont(createFont("Comic Sans MS",15))
;
texto3 = cp5.addTextlabel("label2")
.setText("TIEMPO APAGADO (ms)")
.setPosition(460,120)
.setColorValue(0xffffffFF)
.setFont(createFont("Comic Sans MS",15))
;
//nombre de estudiante
texto4 = new Textlabel(cp5,"Estudiante: jesus lopez \nTecnologia Industrial",40,230,600,200);
texto4.setFont(createFont("verdana",15));
// programa
}
void draw()
{
background(0,0,0);
texto4.draw(this);
}
void controlEvent (ControlEvent evento)
{
String nombre = evento.getController().getName();
int valor = int(evento.getController().getValue());
serial.write(nombre + ":" + valor);
println(nombre + ":" + valor);
}
Suscribirse a:
Entradas (Atom)