Menu

Fitas LED no Ludobot

Exemplo de ligações de fitas LED no LudoBot:  __aqui__

Exemplos de código e blocos no mDesigner:  __aqui__

Veja mais exemplos com fitas LED e Arduino clicando  __aqui__

 

Código utilizado no exemplo acima (Arduino Nano e display Nokia com fita led):

#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>
#include <FastLED.h>

#define PINO_CONTROLE 6
#define QTDADE_LEDS 4 
#define BRILHO 50
#define VERMELHO A0
#define VERDE A1
#define AZUL A2
#define BLpin 2 //Pino que controla a luz de fundo do display

// CLK, DIN, DC, CE, RST
Adafruit_PCD8544 display = Adafruit_PCD8544(8,9,10,11,12);
int vermelho, verde, azul;
CRGB Fita_Led[QTDADE_LEDS];

void setup() 
{
  FastLED.addLeds<NEOPIXEL, PINO_CONTROLE>(Fita_Led, QTDADE_LEDS);
  FastLED.setBrightness(BRILHO);
  pinMode(VERMELHO, INPUT);
  pinMode(VERDE, INPUT);
  pinMode(AZUL, INPUT);
  fill_solid(Fita_Led, QTDADE_LEDS, CRGB::Purple);
  FastLED.show(); 
  pinMode(BLpin, OUTPUT);
  digitalWrite(BLpin, HIGH); 
  display.begin(); //Inicializa o Display 
  display.setContrast(56); //Define o contraste
  pinMode(VERMELHO, INPUT);
  pinMode(VERDE, INPUT);
  pinMode(AZUL, INPUT);
}

void loop() 
{
  display.clearDisplay(); //Limpa a tela
  display.setCursor(14,3); //Posição do Cursor
  display.print("Suas cores"); 
  vermelho = map(analogRead(VERMELHO), 0, 1023, 0, 255);
  verde = map(analogRead(VERDE), 0, 1023, 0, 255);
  azul = map(analogRead(AZUL), 0, 1023, 0, 255);
  display.setCursor(0,15); //Posição do Cursor
  display.print("Vermelho = "); 
  display.print(vermelho);
  display.setCursor(18,25); //Posição do Cursor
  display.print("Verde = "); 
  display.print(verde);
  display.setCursor(24,35); //Posição do Cursor
  display.print("Azul = "); 
  display.print(azul); 
  display.display(); //Exibe no display
  Fita_Led[0] = CRGB(vermelho, verde, azul); 
  Fita_Led[1] = CRGB(vermelho, verde, azul);
  Fita_Led[2] = CRGB(vermelho, verde, azul);
  Fita_Led[3] = CRGB(vermelho, verde, azul);
  FastLED.show(); 
  delay(500);
}

Também fiz uma versão para LudoBot:

As ligações estão disponíveis __aqui__.



A biblioteca FastLED não deu um resultado legal, então foi substituída pela NeoPixel:
#include<Adafruit_NeoPixel.h>
#include <U8glib.h>
#include <Wire.h>
#define PINO_CONTROLE A3
#define VERMELHO A2
#define VERDE A1
#define AZUL A0
#define QTDADE_LEDS 4
//NEO_GRB  
Adafruit_NeoPixel fitaLED(QTDADE_LEDS, PINO_CONTROLE, NEO_BRG + NEO_KHZ800);
int espera = 25;
int vermelho = 0, verde = 0, azul = 0;
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE);

void mostraValores() {
  u8g.setFont(u8g_font_courB14);
  u8g.setPrintPos(0, 20);
  u8g.print("Vm = ");
  u8g.print(vermelho);
  u8g.setPrintPos(0, 40);
  u8g.print("Vd = ");
  u8g.print(verde);
  u8g.setPrintPos(0, 60);
  u8g.print("Az = ");
  u8g.print(azul);  
}  

void atualizaValores() {
  vermelho = map(analogRead(VERMELHO), 0, 1023, 0, 255);
  verde = map(analogRead(VERDE), 0, 1023, 0, 255);
  azul = map(analogRead(AZUL), 0, 1023, 0, 255);
}

void controlaFita(){
  for (int i=0; i < QTDADE_LEDS; i++) {  
    fitaLED.setPixelColor(i, fitaLED.Color(vermelho, verde, azul));  
    fitaLED.show();    
    delay(espera);  
  }
}

void setup() {
  fitaLED.begin();
  pinMode(VERMELHO, INPUT);
  pinMode(VERDE, INPUT);
  pinMode(AZUL, INPUT);
  delay(1000);
}

void loop() {
  u8g.firstPage();  
  do {
    atualizaValores();
    controlaFita();
    mostraValores();
  }
  while( u8g.nextPage() );
  delay(500);
}

Se preferir os exemplos de código para mDesigner, estão __aqui__  (arquivo compactado, com três exemplos).

Teste também com números aleatórios:

 

Universidade Federal do Paraná
TI Aplicada – pesquisa e extensão

Av Pref Lothário Meissner, 632
80210-170 | Curitiba |
simao@ufpr.br
(41) 3360-4420
Universidade Federal do Paraná
TI Aplicada – pesquisa e extensão

Av Pref Lothário Meissner, 632
80210-170 | Curitiba |
simao@ufpr.br
(41) 3360-4420

UFPR nas Redes Sociais


UFPR nas Redes Sociais