LusoRobótica - Robótica em Português
Sistemas específicos => Arduino / AVR => Tópico iniciado por: chefmoisas em 22 de Novembro de 2012, 11:56
-
Gostaria de saber se teem ideia de uma solução para poder controlar a intensidade de uma tira de led através do arduino. A minha ideia seria conseguir que aparti de uma determinada hora ele começasse a aumentar a intesidade até atingir o pico de 100% e depois começasse a diminuir gradualmente também .
Aguardo feedback
-
Voltagem e corrente dessa fita de leds?
-
Voltagem e corrente dessa fita de leds?
12V uso transformador
-
Penso que dá com um transístor. Controlas a intensidade por pwm.
-
Penso que dá com um transístor. Controlas a intensidade por pwm.
O problema é que não posso ligar a tira directo à porta digital ou seja o exemplo que vi de controlar a intensidade por pwm foi o uso de um led com registor directo ao ground e porta digital , logo , sendo a ligação de quase 6 amperes e 12 volts como faço ???
Este foi o exemplo
http://deivson-robotica.blogspot.pt/2012/01/controlar-led-no-pino-pwm-intensidade.html (http://deivson-robotica.blogspot.pt/2012/01/controlar-led-no-pino-pwm-intensidade.html)
-
Usas um transistor, que serve precisamente para isso...
-
Usas um transistor, que serve precisamente para isso...
Aconcelhas o tip 122
-
Bom dia
Estou em testes com o intuito de aproveitar o rtc para fazer um fade a um led ligado à porta 9 mas chega à determinada hora e ele não acende algum me ajuda a encontrar o erro ?
aqui vai o codigo
/*-----( Import needed libraries )-----*/
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include "RTClib.h"
/*-----( Declare Constants )-----*/
/*-----( Declare objects )-----*/
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27
/*-----( Declare Variables )-----*/
RTC_DS1307 RTC;
int led = 9; // the pin that the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
void setup() /*----( SETUP: RUNS ONCE )----*/
{
lcd.init();
lcd.backlight();
Serial.begin(9600);
Wire.begin();
RTC.begin();
if (!RTC.isrunning())
{
RTC.adjust(DateTime(__DATE__, __TIME__));
}
pinMode(led, OUTPUT);
}
void loop()
{
DateTime agora = RTC.now();
String relogio_data = "";
String relogio_hora = "/";
int dia = agora.day();
int mes = agora.month();
int ano = agora.year();
relogio_data += ArrumaZero(dia);
relogio_data += "/";
relogio_data += ArrumaZero(mes);
relogio_data += "/";
relogio_data += ano;
int hora = agora.hour();
int minuto = agora.minute();
int segundo = agora.second();
//const int horartc = agora.hour();
if (hora >= 20 && hora < 04) digitalWrite(led, HIGH);
else digitalWrite(led, LOW);
relogio_hora += ArrumaZero(hora);
relogio_hora += ":";
relogio_hora += ArrumaZero(minuto);
lcd.setCursor(0, 0);
lcd.print(relogio_data);
lcd.print(relogio_hora);
delay(500);
}
String ArrumaZero(int i)
{
String ret;
if (i < 10) ret += "0";
ret += i;
return ret;
}
-
nunca mexi numa RTC, mas pelo que li do codigo o erro ta no if
não podes dizer que um número é maior que 20 e menor que 4. 21 é maior que 20? sim, mas jamais menor que 4. Se queres colocar o pin digital a 1 quando estás entre as 20h e as 4h da manhã tens de ser um || (ou) ao invés de um &&