Ninguém disse que estavas aqui para sermos nós a fazer o programa... mas a verdade é que não deste muita informação ou sequer questões para te podermos ajudar.
Coloca aqui os erros e o código que estás a usar para podermos ver onde está o erro.
Ninguém disse que estavas aqui para sermos nós a fazer o programa... mas a verdade é que não deste muita informação ou sequer questões para te podermos ajudar.
Coloca aqui os erros e o código que estás a usar para podermos ver onde está o erro.
O que esperas atingir com isto:
const int One = 3 , 4;
const int Two = 2 , 3 , 5 , 6 , 8;
const int Three = 2 , 3 , 4 , 5 , 8;
const int Four = 3 , 4 , 7 , 8;
const int Five = 2 , 4 , 5 , 7 , 8;
?
bubulindo:
O que esperas atingir com isto:const int One = 3 , 4;
const int Two = 2 , 3 , 5 , 6 , 8;
const int Three = 2 , 3 , 4 , 5 , 8;
const int Four = 3 , 4 , 7 , 8;
const int Five = 2 , 4 , 5 , 7 , 8;
?
Eu ia colocar a mesma questão, quando atualizei a página você tinha sido mais rápido
Eu sou o flash do Fórum do Arduino. LOL
Se calhar isto é sinal que passo demasiado tempo aqui... Por falar nisso, fiquem bem. Vou passar o fim de semana fora de casa.
bubulindo:
Eu sou o flash do Fórum do Arduino. LOLSe calhar isto é sinal que passo demasiado tempo aqui... Por falar nisso, fiquem bem. Vou passar o fim de semana fora de casa.
Ok The Flash! kkkk
Tirar uma folga é verdadeiramente bom!
Eu responderei a todas as pessoas e quando voltares tu corriges tudo o que eu disser, ok? rs
essa linguagem era para o display de 7 segmentos.
Ola vejo muitas coisas menos corretas.
if(digitalRead(IncreasePin)==LOW&&COUNTER<maxCar)
{
COUNTER++;
info();
delay(wait);
}
na loop tens isto, a intençao é boa mas o que irá acontecer se mantiveres o pino em baixo?
A loop é mais rapida que tu ou o sensor e isso ira logo atingir o valor maximo mesmo antes do sensor ou botao ser solto.
Tens de encravar a funçao para que isso nao aconteça
O que te aconcelho é antes de partires para a programaçao desenharem numa folha um algoritmo de como o programa tem de funcionar e partires cada parte em pequenas funçoes,depois partes para o programa.
Tipo funçao detecta carro, funçao verifica lugar parque, funçao semaforo ...
No teu codigo que postaste estas a repetir muitas vezes a mesma coisa que pode ser reutilizada.
Pensa primeiro nisso
como assim fazer o algoritmo no papel?
Tuba,
O que o HugoPT quer dizer é que o loop corre muito rápido e se fizeres um teste apertando e soltando o botão, o teu count pode ser incorreto, pois o loop pode registrar o estado LOW mais de uma vez em um único pressionamento.
dê uma olhada nesse exemplo, ele melhora o tratamento do pressionamento (ou do sensor que enviará o sinal):
http://arduino.cc/en/Tutorial/ButtonStateChange
Outro método que pode utilizar é esse:
http://arduino.cc/en/Reference/AttachInterrupt
Sobre o todo, como o HugoPT disse, faz cada parte isoladamente, testa o pressionamento do botão (ou disparo do sensor), depois a movimentação dos servos, o display, etc e depois junta todo o código gradativamente, esse é o caminho mais fácil e prático (digo por experiência própria ^^).
sobre o código abaixo:
bubulindo:
O que esperas atingir com isto:const int One = 3 , 4;
const int Two = 2 , 3 , 5 , 6 , 8;
const int Three = 2 , 3 , 4 , 5 , 8;
const int Four = 3 , 4 , 7 , 8;
const int Five = 2 , 4 , 5 , 7 , 8;
?
Presumo que desejavas era o que tem neste link: http://www.hacktronics.com/Tutorials/arduino-and-7-segment-led.html
Se algo não funcionar ou se tiveres alguma dúvida, retorna aqui que tentamos te ajudar.
como assim fazer o algoritmo no papel?
A minha sugestao e desenhares tipo com baloes e instruçoes de decisao num papel o diagrama que o teu programa tem de fazer e resolver mediante o desafio que tens.
Partes cada bocado num pequeno problema e vais criando funçoes para cada uma delas
Por exemplo no teu codigo que postaste estas a repetir a mesma coisa imensas vezes para ligares os leds com o numero de lugares no parque.Para contornar isso podes usar uma variavel de 8 bits e mandares essa variavel directamente no Porto onde tens os leds.Assim podes usar uma funçao para la escrever de uma forma simples:
void writeVariableToPortB(uint8_t valueToPort)
{
DDRB = 0x1F; //seta os 5 bits menos significativos do porto B como outputs
PORTB = valueToPort; //escreve valor na PortaB
}
Ve esta pequena tabela de verdade que fiz no excel sobre os valores que a variavel que passas para a funçao terá de ter:
Ou seja se quiseres ligar o led 5 passas para a funçao uma variavel com o valor de 32 por exemplo:
uint8_t portVariable = 1;
void setup()
{
DDRB = 0x1F; //seta os 5 bits menos significativos do porto B como outputs 0b00011111
/*O portB tem como pinos no Atmega328 a seguinte ordem:
bit0 do PortoB ----->Pino 8 no arduino
bit1 do PortoB ----->Pino 9 no arduino
bit2 do PortoB ----->Pino 10 no arduino
bit3 do PortoB ----->Pino 11 no arduino
bit4 do PortoB ----->Pino 12 no arduino*/
}
void loop()
{
for(uint8_t i = 0; i<=4;i++)
{
writeVariableToPortB(portVariable);
portVariable = portVariable * 2;
delay(1000);
if(portVariable == 64)portVariable = 1;//Renicia o ciclo
}
}
void writeVariableToPortB(uint8_t valueToPort)
{
PORTB = valueToPort;//Escreve o valor no PortoB
}
Este codigo deverá fazer correr os 5 leds e devera dar para resolveres essa repetiçao de codigo.Agora resolves os outros erros ...
Desculpa, mas não estou a perceber o isso dos valores decimais.
E isso do algoritmo é tipo isto:
fluxograma parque estacionamento.bmp (18.2 KB)
Desculpa, mas não estou a perceber o isso dos valores decimais.
Esses valores em decimal e a conversao de binario para decimal.Se pegares numa calculadora em modo programaçao (usa a do windows) e colocares la 10000 no formato binario e carregaresm em DEC ele converte esse numero para decimal que é o mesmo valor mas numa representaçao diferente
E isso do algoritmo é tipo isto:
Nao bem, é mais algo assim:
desculpa estar a pedir te isto mas eu tou desesperado é que nao entregar esse projecto concluido no inicio do 3º periodo tenho que me inscrever para a recuperação do modulo e isso vai custar me 7 euros.
Nao vou fazer isso pois isso e contra tudo neste forum.Se pedires ajudar sim irei ajudar nas tuas DUVIDAS, mas nao irei fazer isso que me pedes.
Se eu te fizer isso nao vais perceber no final e nao vais ganhar nada nem aprender.Nao penses dessa forma,nao encares esse projecto como algo que tens de fazer a pressa e depois arrumou pra sempre.Da valor ao que estas a fazer e dedica-te a ele.
Acredita que eu no teu lugar preferia chumbar o modulo se quando o estivesse para apresentar nao entende-se o que la tinha feito
Tá bem mas eu depois de isso completo eu ia pedir que me ensinasses a fazer essas coisas, pois o professor diz que se eu fizer bem o trabalho me oferece o arduino.
E desculpa, por isto mas é que eu estou um pouco às cegas com o projecto, apenas tenho as ideias de o que queria que acontecesse no parque, mas nao percebo patavina da linguagem que deveria fazer, será que me podes ensinar a fazer a linguagem para este projecto?
O teu programa tem de correr de uma forma logica e estruturada.Quando digo faz o algoritmo é para meteres isso explicado em papel para entenderes o que estas a fazer e qual o proximo passo.Elabora um fluxograma com o que tens de fazer para controlar o parque.
Desenha com instruçoes de decisao
vou fazer o fluxograma agora mesmo, podes me dar uma ajudinha a fazer o programa depois?
Tuba121:
desculpa estar a pedir te isto mas eu tou desesperado é que nao entregar esse projecto concluido no inicio do 3º periodo tenho que me inscrever para a recuperação do modulo e isso vai custar me 7 euros.
Fazer a disciplina sem entenderes o que fizeste vai custar-te muito mais.
Que é que aprendeste de programação?
Aprendi os Sistemas de Numeração, Circuitos Lógicos, Circuitos Combinatórios, Circuitos Sequenciais e um pouco da Arquitectura dos Microcontroladores.