ay), + 2 CIs CD4017 ? Com isto você vai precisar de ==2+3+2==7 portas do mini, dá sossegado.
É isto mesmo Carlos que você precisa ? Agora uma pergunta que não quer calar. 16 canais ? tem esta necessidade ? não quer ligar estes leds de outra maneira ? …
rem como usei muitos arrays estourei a memoria do meu Arduino.
Alguem poderia me ajudar?
Estou usando o CI 74hc595 em cascata para manipular 16 displays de sete segmentos.
Com o codigo em anexo só consigo manipular 2 displays.
Eu já tentei com Matriz de duas dimensões, mas parece que o procedimento é o mesmo que de arrays.
Essa mascara de mult arrays represnta a linha de displays que eu quero comandar(dispay 1...display 4)
int *DisplayLinha[44] [24]= { {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0},//1 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1},//2 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0},//3 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0},//4 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0},//5 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1},//6 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0},//7 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1},//8 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0},//9 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,1},//0 {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0},//d {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0},//1 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1},//2 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0},//3 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0},//4 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0},//5 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1},//6 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0},//7 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1},//8 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0},//9 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,1},//0 {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0},//d {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0},//1 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1},//2 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0},//3 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0},//4 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0},//5 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1},//6 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0},//7 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1},//8 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0},//9 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,1},//0 {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0},//d {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0},//1 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1},//2 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0},//3 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0},//4 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0},//5 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1},//6 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0},//7 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1},//8 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0},//9 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,1},//0 {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0}};//d
código pronto - dá estouro na memoria! int D1um[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0};//1 int D1dois[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1};//2 int D1tres[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0};//3 int D1quatro[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0};//4 int D1cinco[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0};//5 int D1seis[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1};//6 int D1sete[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0};//7 int D1oito[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1};//8 int D1nove[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0};//9 int D1zero[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,1};//0 int D1dig[] = {0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0};//d
// D A,F,G,B,C,d,E D A,F,G,B,C,d,E int D2um[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0};//1 int D2dois[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1};//2 int D2tres[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0};//3 int D2quatro[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0};//4 int D2cinco[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0};//5 int D2seis[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1};//6 int D2sete[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0};//7 int D2oito[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1};//8 int D2nove[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0};//9 int D2zero[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,1};//0 int D2dig[] = {0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0};//d
// D A,F,G,B,C,d,E D A,F,G,B,C,d,E /*int D3um[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0};//1 int D3dois[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1};//2 int D3tres[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0};//3 int D3quatro[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0};//4 int D3cinco[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0};//5 int D3seis[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1};//6 int D3sete[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0};//7 int D3oito[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1};//8 int D3nove[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0};//9 int D3zero[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,1};//0 int D3dig[] = {0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0};//d
int D4um[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0};//1 int D4dois[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,0,0,1};//2 int D4tres[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,0,0};//3 int D4quatro[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0};//4 int D4cinco[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0};//5 int D4seis[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,1,0,1};//6 int D4sete[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0};//7 int D4oito[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,1};//8 int D4nove[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0};//9 int D4zero[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,1,1,0,1};//0 int D4dig[] = {0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0};//d //array dos numeros*/ int *number[] = {D1dig,D1zero,D1um,D1dois,D1tres,D1quatro,D1cinco,D1seis,D1sete,D1oito,D1nove, D2dig,D2zero,D2um,D2dois,D2tres,D2quatro,D2cinco,D2seis,D2sete,D2oito,D2nove}; /*D3dig,D3zero,D3um,D3dois,D3tres,D3quatro,D3cinco,D3seis,D3sete,D3oito,D3nove, D4dig,D4zero,D4um,D4dois,D4tres,D4quatro,D4cinco,D4seis,D4sete,D4oito,D4nove};*/
//Define os pinos de saida int SER = 8; int RCLK = 11; int SRCLK = 12;
int counter = 0;
void changeValues(int *val[]){ for (int j=0;j<22;j++){ for(int i=23; i > -1; i--){ //SRCLK deslocamento digitalWrite(SRCLK, LOW); //HIGH logo apos deslocar, setar o clock digitalWrite(RCLK, HIGH); int PIN = val[j][i]; //pino a deslocar digitalWrite(SER, PIN); //HIGH para ativar digitalWrite(SRCLK, HIGH); } digitalWrite(RCLK, LOW); delay(500); } }
void setup(){ //configurando pinos como saida pinMode(SER,OUTPUT); pinMode(RCLK,OUTPUT); pinMode(SRCLK,OUTPUT); }
void loop(){ changeValues(number); counter += 1; if (counter >7){counter =0;} }…
Adicionado por jose merces ao 21:59 em 20 novembro 2014
)
relé 2 - ligar e desligar sozinho após 15 segundos (levantar os vidros)
relé 3 - ligar e desligar sozinho após 2 segundos (ligar o motor)
relé 4 - ligar e desligar sozinho após 1 segundo (abrir a porta)
relé 5 - ligar e desligar sozinho após 1 segundo (fechar a porta)
relé 6 - ligar e desligar sozinho após 1 segundo (abrir a mala)
relé 7 - liga e desliga normalmente (ON/OFF) alimenta a ignição (painel)
relé 8 - liga e desliga normalmente (ON/OFF) - alimenta o rádio
Nota: Só consegui temporizar o último relé, como fazer com os demais?
Segue abaixo o projeto para alteração:
====================================================================
#include <SoftwareSerial.h> //Inlcui a biblioteca SoftwareSerial.h
#define RxD 0 //Define RxD como 0 #define TxD 1 //Define TxD como 1
#define RELE 1 2 #define RELE 2 3 #define RELE 4 4 #define RELE 5 5 #define RELE 6 6 #define RELE 7 7 #define RELE 8 8 #define RELE 9 9
SoftwareSerial blueToothSerial(RxD,TxD); //Instância a biblioteca SoftwareSerial.h
void setup() {
pinMode(2, OUTPUT); //Configura o pino 2 como saída pinMode(3, OUTPUT); //Configura o pino 3 como saída pinMode(4, OUTPUT); //Configura o pino 4 como saída pinMode(5, OUTPUT);//Configura o pino 5 como saída pinMode(6, OUTPUT);//Configura o pino 6 como saída pinMode(7, OUTPUT);//Configura o pino 7 como saída pinMode(8, OUTPUT);//Configura o pino 8 como saída pinMode(9, OUTPUT);//Configura o pino 9 como saída parear_dispositivo(); //Executa a função para parear o dispositivo }
void loop() { char letra; //Variável char para armazenar o caractere recebido
if(blueToothSerial.available()) //Se algo for recebido pela serial do módulo bluetooth { letra = blueToothSerial.read();
if(letra == 'A') digitalWrite(2, HIGH); else if(letra == 'a') digitalWrite(2, LOW); else if(letra == 'B') digitalWrite(3, HIGH); else if(letra == 'b') digitalWrite(3, LOW); else if(letra == 'C') digitalWrite(4, HIGH); else if(letra == 'c') digitalWrite(4, LOW); else if(letra == 'D') digitalWrite(5, HIGH); else if(letra == 'd') digitalWrite(5, LOW); else if(letra == 'E') digitalWrite(6, HIGH); else if(letra == 'e') digitalWrite(6, LOW); else if(letra == 'F') digitalWrite(7, HIGH); else if(letra == 'f') digitalWrite(7, LOW); else if(letra == 'G') digitalWrite(8, HIGH); else if(letra == 'g') digitalWrite(8, LOW); else if(letra == 'H') digitalWrite(9, HIGH); delay(2000); digitalWrite(9, LOW); } }
void parear_dispositivo() { blueToothSerial.begin(9600); // Configura o baud rate do bluetooth como 9600 blueToothSerial.print("\r\n+STWMOD=0\r\n"); // Configura o módulo bluetooth para trabalhar como slave blueToothSerial.print("\r\n+STNA=SeedBTShield\r\n"); // Configura o nome do disopsitivo bluetooth blueToothSerial.print("\r\n+STOAUT=1\r\n"); // Permite que outros dispositivos encontrem o módulo bluetooth blueToothSerial.print("\r\n+STAUTO=0\r\n"); // Desabilita a auto conexão delay(2000); // Aguarda 2 segundos blueToothSerial.print("\r\n+INQ=1\r\n"); // Habilita modo de paridade delay(2000); // Aguarda 2 segundos blueToothSerial.flush(); // Dá um flush na serial do módulo bluetooth }…
Adicionado por Rodney Hertz ao 12:37 em 20 abril 2015
aria de saber se existe algum tipo de jumpeamento e depois troca de 0 para 1 na saidas do arduino para fazer esse display funcionar sem ter que remover e resoldar todos displays.…
ra o assunto...então faço questão de compartilhar com vocês o meu feito...que é apenas o acendimento de um LED através do apertar de um botão.
Digo faço questão porque sempre que precisei do pessoal do Fórum eu fui ajudado...infelizmente não por todos..tem gente que responde uma dúvida só pra constar que "ajudou"...porque fala cada "asneira" sem tamanho..o que pode confundir ao invés de ajudar.O pior é que quando questionamos a "ajuda", o "camarada" nem dá mais as caras..acho que deve ser a vergonha bobagem num Fórum tão difundido e conceituado...mas isso não vem ao caso.
Pessoal..segue o código comentado (para 2 Arduinos UNO)...e o esquemático de ligação.
Abração a todos e espero que seja útil futuramente.
Código Emissor#include <SPI.h>#include "nRF24L01.h"#include "RF24.h"int dados[1]; //Armazena os dados enviados pelo rádioRF24 radio(9,10); //Inicializa a placa nos pinos 9 (CE) e 10 (CS) do Arduinoconst uint64_t pipe = 0xE14BC8F482LL; //Define o endereço para comunicacao entre os módulosint pino_botao1 = 7; //Inclui a Porta Digital 7 na estrutura da programação do módulo void setup(){ pinMode(7, INPUT); //Define a Porta Digital 7 para entrada de sinal para disparo do Dispositivo Secundário digitalWrite(7,HIGH); //Define a Porta Digital 7 inicialmente em nível alto radio.begin(); //Inicializa a comunicação entre os módulos radio.openWritingPipe(pipe); //Entra em modo de transmissao}void loop(){ if (digitalRead(pino_botao1) == LOW) //Envia o comando para disparo caso a Porta Digital 7 entre em nível baixo { dados[0] = 1; // salva o valor 1 no índice dos valores enviados pelo rádio radio.write(dados, 1); // escreve o valor 1 na variável dados }}Código Receptor#include <SPI.h>#include "nRF24L01.h"#include "RF24.h"int recebidos[1]; //Armazena os dados recebidosRF24 radio(9, 10); //Inicializa a placa nos pinos 9 (CE) e 10 (CS) do Arduinoconst uint64_t pipe = 0xE14BC8F482LL; //Define o endereco para comunicaçao entre os módulosint LED1 = 5; //Inclui a Porta Digital 5 na estrutura da programação do módulo void setup(){ pinMode(LED1, OUTPUT); //Define a Porta Digital 5 como saída de sinal para disparo do Dispositivo Secundário radio.begin(); //Inicializa a comunicaçao entre os módulos radio.openReadingPipe(1, pipe); //Entra em modo de recepcao radio.startListening(); ////Entra em modo de recepcao}void loop(){ if (radio.available()) //Verifica se há sinal de radio { bool done = false; //determina a variável booleana como falsa while (!done) //executa uma rotina determinada enquanto a variável booleana é negada { done = radio.read(recebidos, 1); // Lê a variável transmitida if (recebidos[0] == 1) //Se recebeu o numero 1, executa determinada ação { delay(10); //Tempo até executar a rotina de ativamento digitalWrite(LED1, HIGH); //Ativa a Porta Digital 5 em nível alto para disparo do Dispositivo Secundário } else { digitalWrite(LED1, LOW); //Desativa Porta Digital 5 caso o valor recebido não seja igual ao valor 1 } delay(100); //Tempo para reiniciar a verificação do sinal transmitido } } }
…
Adicionado por Rubens Lima ao 17:50 em 5 abril 2015
ieboard com baseboard, um PCDuino, um Nokia N9 com Meego, um GK802 com Ubuntu "oficial", um UG802 com Ubuntu "suportado pela comunidade", um Tronsmart T428 com Ubuntu "embutido"…
divisor de tensão que vc sentiu falta
3. RX e TX nos pinos 0 e 1 (sem softwareserial.h)
4. Com led + resistor em outros pinos que não o 13.
5 Com alimentação externa (fonte de 1A).
6. Mudando a velocidade de 9600 até 115200.
7. Mudando a alimentação para 3,3V.
8. Outros sketches mas com mesma filosofia.
enfim.........
Obrigado…