DESCRIPCIÓN
MATERIALES DEL LABORATORIO
Protoboard.
Resistencias de 220 Ohmios.
Led RGB.
Kit de cables para arduino.
Resistencias de 220 Ohmios.
Led RGB.
Kit de cables para arduino.
MATERIALES DEL LABORATORIO
- Computador con el IDE de Arduino y el driver de nuestra placa
- Arduino Uno
- Protoboard
- Línea LED RGB5050 CJMCU-2812-8
- Cables Macho - Macho
- Diagrama Arduino Uno
- Arduino Uno
- Protoboard
- Línea LED RGB5050 CJMCU-2812-8
- Cables Macho - Macho
- Diagrama Arduino Uno
DIAGRAMAS
PROTOBOARD
CÓDIGO
ARDUINO
- #define TOTAL 8
- int R = 9;
- int G = 10;
- int B = 11;
- int led[TOTAL] = {2, 3, 4, 5, 6, 7, 8, 13};
- int pos = 0;
- int color = 0;
- int estado = 0;
- String str = "";
- void setup() {
- Serial.begin(9600);
- for (int i = 0; i < TOTAL; i++) {
- pinMode(led[i], OUTPUT);
- digitalWrite(led[i], HIGH);
- }
- pinMode(R, OUTPUT);
- digitalWrite(R, HIGH);
- pinMode(G, OUTPUT);
- digitalWrite(G, HIGH);
- pinMode(B, OUTPUT);
- digitalWrite(B, HIGH);
- }
- void loop() {
- leerSerial();
- if (estado)
- encender(pos, color);
- else
- apagar(pos, color);
- delay(100);
- }
- void leerSerial() {
- if (Serial.available() > 0) {
- str = Serial.readString();
- // Serial.println(str[0]); // RGB
- // Serial.println(str[1]); // led 0-7
- // Serial.println(str[2]); // 0=off 1=on
- switch (str[0]) {
- case 'R': color = R; break;;
- case 'G': color = G; break;;
- case 'B': color = B; break;;
- }
- pos = led[ int(str[1] - '0') ];
- estado = int(str[2] - '0');
- }
- }
- void encender (int led, int c) {
- digitalWrite(led, LOW);
- digitalWrite(c, LOW);
- }
- void apagar(int led, int c) {
- digitalWrite(led, HIGH);
- digitalWrite(c, HIGH);
- }
PROCESSING
- // utilizar la libreria ControlP5
- import controlP5.*;
- import processing.serial.*;
- // definir la variable cp5 del tipo ControlP5
- ControlP5 cp5;
- Serial serial;
- // como deseamos controlar 8 LEDs, usamos un arreglo
- int[] led = new int[] {
- 0, 0, 0, 0, 0, 0, 0, 0
- };
- String[] nm = new String[] {
- "R", "G", "B"
- };
- // configuración inicial
- void setup() {
- size(750, 140); // tamaño de la ventana
- noStroke(); // no dibujar el border de los circulos
- // crear el objeto ControlP5
- cp5 = new ControlP5(this);
- // crear un botón para encender/apagar cada LED
- for (int i=0; i<8; i++){
- for (int l=0; l<3; l++){
- if(nm[l]=="R"){
- cp5.addToggle(nm[l]+i, 30+l*20+i*90, 30, 20, 40)
- .setColorBackground(color(100,0,0))
- .setColorForeground(color(150,0,0))
- .setColorActive(color(255,0,0));
- }
- if(nm[l]=="G"){
- cp5.addToggle(nm[l]+i, 30+l*20+i*90, 30, 20, 40)
- .setColorBackground(color(0,100,0))
- .setColorForeground(color(0,150,0))
- .setColorActive(color(0,255,0));
- }
- if(nm[l]=="B"){
- cp5.addToggle(nm[l]+i, 30+l*20+i*90, 30, 20, 40)
- .setColorBackground(color(0,0,100))
- .setColorForeground(color(0,0,150))
- .setColorActive(color(0,0,255));
- }
- }
- }
- serial = new Serial(this, Serial.list()[1], 9600);
- }
- // dibujar cada frame
- void draw()
- {
- background(0xFF444444); // color gris del fondo
- }
- // actuar cuando ocurra un evento con los Sliders
- public void controlEvent(ControlEvent theEvent) {
- // guardar el nombre y valor del evento
- String nombre = theEvent.getController().getName();
- int valor = int(theEvent.getController().getValue());
- println("evento: " + nombre + " / valor: "+valor);
- //serial.write(nombre+valor);
- println(nombre+valor);
- serial.write(nombre+valor);
- }
No hay comentarios.:
Publicar un comentario