LusoRobótica - Robótica em Português
Sistemas específicos => Arduino / AVR => Tópico iniciado por: kerwac em 05 de Abril de 2010, 21:58
-
Preciso de ajuda-lol lol
Acabei de comprar no ebay numa das minhas visitas relâmpagos este produto 2416 Dot Matrix Red Display information Board .
Mas.... agora preciso deuma ajuda.Estes leds precisam de driver? ou podem ser conectados directamente ao arduino? Os 5V só dão para uma placa ou para mais que uma? De muito ler o manual e de ver alguns videos , ainda nao consegui perceber estas questoes.Outra qestão é como consigo passar video ou algo de imaguem nos leds? qual o interface?Alguem me pode dar uma ajudinha?
Obrigado
(https://lusorobotica.com/index.php?action=dlattach;topic=2214.0;attach=518)
-
Talvez este link http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1225239439 (http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1225239439) possa ajudar.
-
Ja conhecia
Embora tenha muita informação util, não consigo perceber esses promenores da minha duvida.
Mas obrigado na mesma
-
Pelo que percebi a placa tem um controlador.
O arduino serve para enviar comandos a esse controlador de forma a que este controle os leds.
Alguns exemplos:
http://code.google.com/p/sure-green-matrix/downloads/list (http://code.google.com/p/sure-green-matrix/downloads/list)
http://timewitharduino.blogspot.com/2010/02/wise-clock-2-software-release-for.html (http://timewitharduino.blogspot.com/2010/02/wise-clock-2-software-release-for.html)
http://milesburton.com/index.php/Sure_2416_Running_Pong_via_Arduino (http://milesburton.com/index.php/Sure_2416_Running_Pong_via_Arduino)
-
Se leres as páginas todas desse link decerteza que ficas sem qualquer duvida, esse display já tem um controlador que recebe dados serial e depois pega neles e mete a informação nos leds, já tem o controlador e o driver para os led', podes ligar penso que até 8 displays desses em cascata, os 5v do arduino não devem chegar para isso, ou se chegar eu não arriscaria pois só podes usar no máximo 500mA e esse display com todos os led's ligados vai consumir mais que isso.
-
E alguem sabe me dizer os pinos? entre a placa e o adruino?
Já vi tantas hipoteses que nao sei qual optar.
Obrigado pela vossa ajuda.
-
Lê o link, tem lá tudo!!
E os pinos escolhes os que quiseres menos o 0 e o 1 que são para usares a comunicação serial, de resto estás á vontade.
-
Agora da me esse erro no codigo.Podem-me ajudar?
20: error: ht1632.h: No such file or directory In function 'void ht1632_chipselect(byte)':
In function 'void ht1632_chipfree(byte)':
In function 'void ht1632_writebits(byte, byte)':
In function 'void ht1632_sendcmd(byte)':
In function 'void ht1632_senddata(byte, byte)':
In function 'void setup()':
Obrigado
-
Podias colocar o teu código, pois sem ele ninguém pode saber o porque desses erros.
-
Peço desculpa
Código
/*
* demo16x24.c - Arduino demo program for Holtek HT1632 LED driver chip,
* As implemented on the Sure Electronics DE-DP016 display board
* (16*24 dot matrix LED module.)
* Nov, 2008 by Bill Westfield
*/
#include "ht1632.h"
/*
* Set these constants to the values of the pins connected to the SureElectronics Module
*/
static const byte ht1632_data = 10; // Data pin (pin 7)
static const byte ht1632_wrclk = 11; // Write clock pin (pin 5)
static const byte ht1632_cs = 12; // Chip Select (1, 2, 3, or 4)
// The should also be a common GND.
// The module with all LEDs like draws about 200mA,
// which makes it PROBABLY powerable via Arduino +5V
/*
* ht1632_writebits
* Write bits (up to 8) to h1632 on pins ht1632_data, ht1632_wrclk
* Chip is assumed to already be chip-selected
* Bits are shifted out from MSB to LSB, with the first bit sent
* being (bits & firstbit), shifted till firsbit is zero.
*/
void ht1632_chipselect(byte chipno)
{
DEBUGPRINT("\nHT1632(%d) ", chipno);
digitalWrite(chipno, 0);
}
void ht1632_chipfree(byte chipno)
{
DEBUGPRINT(" [done %d]", chipno);
digitalWrite(chipno, 1);
}
void ht1632_writebits (byte bits, byte firstbit)
{
DEBUGPRINT(" ");
while (firstbit) {
DEBUGPRINT((bits&firstbit ? "1" : "0"));
digitalWrite(ht1632_wrclk, LOW);
if (bits & firstbit) {
digitalWrite(ht1632_data, HIGH);
}
else {
digitalWrite(ht1632_data, LOW);
}
digitalWrite(ht1632_wrclk, HIGH);
firstbit >>= 1;
}
}
static void ht1632_sendcmd (byte command)
{
ht1632_chipselect(ht1632_cs); // Select chip
ht1632_writebits(HT1632_ID_CMD, 1<<2); // send 3 bits of id: COMMMAND
ht1632_writebits(command, 1<<7); // send the actual command
ht1632_writebits(0, 1); /* one extra dont-care bit in commands. */
ht1632_chipfree(ht1632_cs); //done
}
static void ht1632_senddata (byte address, byte data)
{
ht1632_chipselect(ht1632_cs); // Select chip
ht1632_writebits(HT1632_ID_WR, 1<<2); // send ID: WRITE to RAM
ht1632_writebits(address, 1<<6); // Send address
ht1632_writebits(data, 1<<3); // send 4 bits of data
ht1632_chipfree(ht1632_cs); // done
}
void setup () // flow chart from page 17 of datasheet
{
pinMode(ht1632_cs, OUTPUT);
digitalWrite(ht1632_cs, HIGH); /* unselect (active low) */
pinMode(ht1632_wrclk, OUTPUT);
pinMode(ht1632_data, OUTPUT);
ht1632_sendcmd(HT1632_CMD_SYSDIS); // Disable system
ht1632_sendcmd(HT1632_CMD_COMS11); // 16*32, PMOS drivers
ht1632_sendcmd(HT1632_CMD_MSTMD); /* Master Mode */
ht1632_sendcmd(HT1632_CMD_SYSON); /* System on */
ht1632_sendcmd(HT1632_CMD_LEDON); /* LEDs on */
for (byte i=0; i<128; i++)
ht1632_senddata(i, 0); // clear the display!
delay(1000);
}
void loop ()
{
byte bits;
byte addr;
for (addr=0; addr < 96; addr++) { // Shift in ON bits
for (bits=8; ; bits=(bits>>1)+8) {
ht1632_senddata(addr, bits);
delay(30);
if (bits == 15) break;
}
}
delay(1000);
for (addr=0; addr < 96; addr++) { // Now shift in OFF bits
for (bits=15; ; bits=(bits>>1)) {
ht1632_senddata(addr, bits);
delay(10);
if (bits == 0) break;
}
}
delay(1000);
}
-
Tens a biblioteca bem instalada?
-
Penso que sim
Mas pode me explicar como devo fazer posso estar a fazer alguma coisa errada.
Posso mesmo estar a usar bibliotecas erradas.Ou não a adequada.
-
Já verificas-te todas as tuas conexões?