Go Down

Topic: Parque de Estacionamento Utilizando o Arduino Uno (Read 4400 times) previous topic - next topic

Tuba121

Olá a todos

Estou para vos pedir uma ajudinha com um projecto escolar que eu estou a fazer e estou a utilizar um Arduino Uno. O projecto é um parque de estacionamento de 8 lugares com um indicador de parque livre e de parque completo e com uma entrada e uma saída (utilizando servos) e se possível um display de 7 segmentos (que indicá-se o número de vagas existentes no parque). A minha ideia era que quando um carro estivesse para entrar no parque a barreira abria durante 5 segundos e passado esse tempo a barreira fecha e é adicionado esse carro à contagem e na saída quando um carro está para sair a barreira abre e fecha passados 5 segundos e é retirado um carro à contagem. Quando o parque está cheio, acende a luz vermelha e logo que sai um carro a luz vermelha apaga-se e acende-se a luz verde.

Será que me podem dar uma ajudinha?

bubulindo

This... is a hobby.

Tuba121

Apenas fiz pequenos testes utilizando um programa de um parque de estacionamento que me deram, mas esse programa apenas é o indicador de parque livre e parque completo.

bubulindo

Ok...

Nota, nós não estamos aqui para fazer os teus trabalhos. Estamos aqui para tirar dúvidas. Quando te perguntei o que já tinhas feito era para ver se conseguia "arrancar" perguntas em concreto sobre o que tens dúvidas e poder ajudar-te dessa forma.

Perguntar para te ajudarem num projecto sem dizeres o que já tens feito ou onde ficaste encalhado, vai ser mais um post aqui a ganhar pó. Vê o que te falta, o que não sabes em concreto e pergunta. Há por aqui imensa gente capaz de te responder. :)
This... is a hobby.

Tuba121

Eu também não estou aqui para fazerem o trabalho por mim. Eu já fiz o programa, só que quando eu coloco para passar o programa para o Arduino ele dá me uns erros de variáveis. Em anexo coloco o programa do Arduino, para ver se alguém consegue ver de onde vem os erros.

P.S. Eu sou novo no mundo Arduino tenho 2 ou 3 semanas de experiencia, ainda não sei muito.

bubulindo

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.
This... is a hobby.

Tuba121


bubulindo

O que esperas atingir com isto:

Code: [Select]

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;

?
This... is a hobby.

Mortis


O que esperas atingir com isto:

Code: [Select]

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 ;)

bubulindo

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. :)
This... is a hobby.

Mortis


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. :)


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

Tuba121

essa linguagem era para o display de 7 segmentos.

HugoPT

Ola vejo muitas coisas menos corretas.
Quote
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

Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

Tuba121


Mortis

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):
Code: [Select]
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:

O que esperas atingir com isto:

Code: [Select]

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:
Code: [Select]
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.

Go Up