Pages: [1] 2   Go Down
Author Topic: Contador de passagem...  (Read 7672 times)
0 Members and 1 Guest are viewing this topic.
Ribeirão Preto - SP
Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Pessoal a idéia é a seguinte,

Estou querendo construir um contador de passagem para contar objetos quando eles passarem pelo foto-transistor interrompendo o feixe de luz

O contador teria que ser meio rápido, pois a idéia é a seguinte: no meu trabalho eu conto muitos resistores que vem todos em uma "cinta"

eu queria construir um mecanismo que puxasse essa cinta e quando os resistores passarem interrompendo o feixe de luz no foto-transistor

o arduino interpretasse como tivesse passado uma unidade, e assim conforme o mecanismo for rodando a cinta ele iria contando os resistores nela

a informação seria apresentada num lcd 16x2,,

alguem teria ideia como funcionar o foto-transisitor no arduino ?

obrigado
Logged

0
Offline Offline
Full Member
***
Karma: 3
Posts: 132
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Será que isso serve?
http://oomlout.co.uk/?p=315

ou esse?
http://hackaday.com/2008/01/30/smd-component-strip-cutter/

Logged

Ribeirão Preto - SP
Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

cara é mais ou menos isso sim, só que nem precisa cortar a fita não

é só contar quantos tem mesmo e me mostrar a informação no lcd..

é bem mais simples de fazer,,,

estou pensando no projeto aqui,,

qualquer ajuda é bem vinda..

qualquer novidade eu posto para vocês
Logged

Ribeirao Preto - Brazil
Offline Offline
Full Member
***
Karma: 0
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nos exemplos acima nao está contando diretamente como vc quer no seu projeto.
Provavelmente eles usaram motores de passo e determinaram quantos passos eram necessarios para atingir a quantidade de componentes.
Seu projeto apesar de parecer simples nao é, primeiro o tamanho dos resistores é pequeno. Geralmente os leds de ifravermelho que se usa para esse sensor sao maiores que os resistores, sendo que nao seria preciso toda vez que um resistor passar na frente interromper o feixe.
O que eu pensei que vc poderia fazer é utilizar os de um mouse das anitgas, sao bem pequenos e faceis de achar.
Vc nem precisa soltar eles da placa, apenas corte ela e deixe eles soldados e pegue um ferro de solda e solde nos 5 pinos que serao.
De um lado existe o LED emissor com dois pinos, um deles é positivo e o outro negativo. para descobrir será na base do teste.Lembre de colocar uma pequena resistencia em um desses pinos para o led nao queimar, pode ser de 220R.
O outro é um fototransistor com 3 pinos, um sendo positivo, outro negativo e outro vc liga na entrada digital do arduino.
Alimente o sistema com 5v, pode usar do arduino mesmo.
Basicamente vc vai ficar lendo essa entrada digital mas é recomendado vc utilizar alguma tecnica para achar a média de leituras, pois sempre acontece de algum probleminha e tipo quando o led passar contar duas vezes e tals, vai ter que ajustar o tempo dessa média de acordo com a velocidade.
Enfim, nao é simples como parece.
Recomendo que vc primeiro comece apenas enviando uma mensagem para a serial quando simular um resistor passando, para depois avançar. Teste sem média mesmo para ver se é preciso o bastante para nao precisar, ou se precisar o tempo que essa media precisa ser.
Caso vc nao tenha nenhum mouse pode comprar um sensor no ML como esse ou ainda um led emissor e um foto transistor (TIL 32 e TIL 78‎ ) e usar como uma mascara na frente um papel com um pequeno furo.
http://produto.mercadolivre.com.br/MLB-206452554-h22a1-phct103-foto-interruptor-p-microcontrolador-pic-atmel-_JM
Qualquer coisa que vc nao entendeu basta postar que eu explico.
Logged

Precisa de produtos para seu Arduino?
Não deixe de ver meus produtos no Mercado Livre!
http://lista.mercadolivre.com.br/_CustId_76934379

Ribeirão Preto - SP
Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

E ai vinicius beleza?
Cara vi que voce é de ribeirao preto,.. sou daqui também , legal saber que tem mais gente por aqui,,
quanto ao projeto, estou pensando em usar os TIL mesmo,, ja tenho um parzim aqui de 3 mm portanto,
acho que fazendo tipo um tubinho com uma mascara na ponta deles, da pra deixar um feixe bem fininho garantindo uma precisão maior, o que acha?
estou trabalhando na parte mecânica da coisa pra depois ir pra parte eletronica,,
o que eu sou um pouco "crú" é na parte de programção do arduino,, no caso como eu faria para ele fazer a contagem, seria usando o incremento
não tenho muita ideia de programção não
se puder me ajudar eu agradeço.
outra coisa, no fototransistor eu ligaria ele nos 5v com um resistor e o mesmo terminal iria para a porta do arduino? assim ele comuta entre nivel
lógico 0 e 1 soltando os 5v?
muito obrigado pela ajuda cara
Logged

Ribeirao Preto - Brazil
Offline Offline
Full Member
***
Karma: 0
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Legal, nem tinha visto que vc é de Ribeirao.
Pode tentar fazer exatamente como vc pensou com tubo e uma mascara na ponta. Mas eu nao sei se um feixe fino assim é suficiente para ativar o fototransistor, qualquer coisa vc pode usar uma entrada analogica ao inves de uma digital. Mas começe pela parte mecanica depois de tudo montado fica muito mais facil testar.
Vc pode ligar o fototransistor como vc disse para a entrada digital.
A parte de programaçao acho que é bem tranquila.
Vc apenas vai ler a entrada digital ou no caso analogica, e se estiver LOW vai adicionar +1 na variavel. Depois que tiver a parte mecanica montada posta novamente que explico a parte de programaçao, melhor ir fazendo em partes.
Uma dica é se vc precisar de componentes ao inves de ir na Radiolar que é muito cara, siga na mesma rua mais uns 4 quarteiroes sentido a Francisco, vai achar uma loja amarela chamada Tecnohelp, lá é tudo bem mais em conta.
Vc pretende exibir através de LCD ou do computador a contagem?
Logged

Precisa de produtos para seu Arduino?
Não deixe de ver meus produtos no Mercado Livre!
http://lista.mercadolivre.com.br/_CustId_76934379

Ribeirão Preto - SP
Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Então vinicius, valew pelas dicas,,

pois é nem passo perto da radiolar, os caras exploram mesmo, só quando não tem jeito mesmo, constumo compra na tecbel e na tecnohelp tambem
conheço o ismael qua trabalha lá, ja trabalhei com ele,rs
ele faz uns preços legal,,kk

entao estou pretendendo exibir a contagem em um lcd 16x2 pra ficar mais autônomo sem precisar de pc,,

acredito que com a parte da contagem pronta, não sera problema exibir as informações no lcd..

outra coisa teria como eu colocar um botão tipo reset pra zerar a contagem?

me fala uma coisa você ja procurou atmega 328 aqui em ribeirao? uma vez o meu queimou e eu precisei trocar, nem achei só no mercado livre mesmo..

mais uma vez obrigado pelas dicas, logo logo posto umas fotos do mecanismo pra voce ver..rs

Logged

Ribeirao Preto - Brazil
Offline Offline
Full Member
***
Karma: 0
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nunca procurei ATmega aqui, só PICs mesmo. Não sabia que era dificio de encontrar e nao sei onde possa encontrar.
Sim, é bem simples adicionar botoes e programaçao no Arduino.
Vc já tem o Arduino ou pretende usar um chip na protoboard?
Se quiser ja pode começar a fazer um contador exibindo na serial caso ainda nao tenha o LCD, é bem facil e tranquilo.
Quando quiser diga que passo um exemplo com botao incrementa e outro reset, depois basicamente é substituir o botao incrementa pelo fototransistor.
Logged

Precisa de produtos para seu Arduino?
Não deixe de ver meus produtos no Mercado Livre!
http://lista.mercadolivre.com.br/_CustId_76934379

Ribeirão Preto - SP
Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

cara ja tenho o arduino sim,

se voce puder me passar esse esquema ja me ajudaria muito,,

depois é so trocar o botao pelo fototransistor,,

o lcd depois é facil colocar tambem né
Logged

Ribeirão Preto - SP
Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

mais uma coisa..

como é o esquema de ligação do foto transísitor, só tenho um e to com medo de queimar rs

devo ligar um terminal ao terra e o outro nos 5v com resistor? e o pino ligado nos 5v é o que vai no arduino?
Logged

Ribeirao Preto - Brazil
Offline Offline
Full Member
***
Karma: 0
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Olá.
Vamos começar com o exemplo do botão que é simples e facil de entender, e seu projeto é basicamente isso.
Vc vai precisar de um botão e um resistor de 10k.
Ligue os botao como nessa imagem na entrada digital 2 e o outro na 3.



Feito isso conecte seu Arduino e abra o Arduino IDE.
Tente colar o seguinte código:


const int botaoIncrementa = 2;//Definindo um nome para o Pino onde o botao incrementar está conectado, nesse caso Pino Digital 1. Apenas um regra para facilitar e nao precisarmos sempre lembrar em qual pino está conectado cada botao
const int botaoReset = 3;     //Definindo um nome para o Pino onde o botao incrementar está conectado, nesse caso Pino Digital 1
int numeroResistores = 0;     //Cria a variavel onde vamos armazenar o numero de resistores, e ja atribui o valor zero para ela

void setup() {
  pinMode(botaoIncrementa, INPUT);//Definindo o pino do botao como entrada
  pinMode(botaoReset, INPUT);     //Definindo o pino do botao como entrada
  Serial.begin(9600);             // Inicia a comunicaçao serial, vamos usar para enviar o numero de resistores
}

void loop(){         //Funcao princiapl que vai ser um loop infinito

  if (digitalRead(botaoIncrementa) == HIGH) {  //Checa se o botao incrementa está apertado, caso esteja executa o que está dentro das cheves do if
  numeroResistores++; //Esse comando incrementa o numero de resistores em 1
  Serial.print("Numero de resistores = ");//Imprime na serial essa mensagem
  Serial.println(numeroResistores);//Imprime na serial o valor da variavel, no caso numeroResistores. ln no final indica que depois da mensagem vai pular uma linha
  }
 
  if (digitalRead(botaoReset) == HIGH) {  //Checa se o botao reset está apertado, caso esteja executa o que está dentro das cheves do if
  numeroResistores = 0; //Reseta o numero de resistores para zero
  Serial.print("Numero de resistores resetado para = ");//Imprime na serial essa mensagem
  Serial.println(numeroResistores);//Imprime na serial o valor da variavel, no caso numeroResistores
  }
  delay(1000);//Espera um segundo antes de verificar novamente, esse tempo vc pode variar para evitar de checar duas vezes, pois o microcontrolador é capaz de checar milhares de vezes por segundo.
  //Se vc deixar de colocar esse tempo um simples pressionar de 100 milissegundos é suficiente para incrementar em mil o numero de resistor. Depois vc terá de ajustar com o seu equipamento funcionando para o melhor tempo
}




Se nao conseguir vou anexar o arquivo compactado do projeto, basta descompactar e abrir com o Arduino IDE.
Acabei errando nesse codigo anexado os pinos dos botoes, mude de 1 e 2 para 2 e 3 como no codigo desse post que está certo.
Não esqueça de abrir o serial monitor em Tools para ver as mensagens.
Qualquer duvida me diga.
E vamos continuar.

* Botao.rar (0.96 KB - downloaded 37 times.)
« Last Edit: October 23, 2011, 10:18:13 pm by ViniciusPolo » Logged

Precisa de produtos para seu Arduino?
Não deixe de ver meus produtos no Mercado Livre!
http://lista.mercadolivre.com.br/_CustId_76934379

Ribeirão Preto - SP
Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

vinicius

o código deu certim, funcionou legal

só vai faltar configurar o tempo de espera quando tudo tiver montado para ajsutar melhor

agora só falta a parte dos TIL e do Lcd,

me fala uma coisa, o TIL tem velocidade de "chaveamento" rápida o suficiente para poder passa os resistores em uma velocidade até razoável?

se não a contagem sera muito lenta...

Logged

Ribeirão Preto - SP
Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

cara fiz um teste aqui colocando o fototransistor ao invez do botao..

na hora que eu coloco o foto no pino 2 ele dispara a contagem diretao igual doido,, mesmo sem voltagem no pino..

o que pode ser isso,, ai depois que eu tiro o fio do pino 2 e coloco o fio do push bottom ele fica normall
Logged

Ribeirao Preto - Brazil
Offline Offline
Full Member
***
Karma: 0
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Olá.
Esse problema me parece que vc colocou o fototransistor invertido. Mas nao tenho certeza pois eu uso de maneira diferente meus botoes, nao como essa figura que postei do teste.
Melhor mesmo é vc testar eles separados antes para ter certeza que estao funcionando, pois muitos dos que comprei vieram queimados.
Primeira coisa para testar o emissor que é o escuro, ligue ele como se fosse um led. Perna maior no positivo a outra num resistor de 220R ou mais e o resistor no negativo. Depois use uma webcam para ver se ele acende ou nao, pois é invisivel ao olho humano.
Vou fazer o teste do fototransistor aqui na minha protoboard e depois montar como eu faço o botao e te envio uma foto.
Estou meio ocupado, mas acho que até amanha consigo.
Se estiver com pressa pode procurar na net depois tirar duvida.
Sobre o tempo eu nunca testei, pois quando usei o fototransistor no meu TCC eu nao precisava de acionar rapidamente. Só testando mesmo. smiley-grin
Vai postando os problemas e fazendo a parte mecanica.
Até.
Logged

Precisa de produtos para seu Arduino?
Não deixe de ver meus produtos no Mercado Livre!
http://lista.mercadolivre.com.br/_CustId_76934379

Ribeirão Preto - SP
Offline Offline
Jr. Member
**
Karma: 0
Posts: 78
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok vinicius

fiz uns testes aqui, liguei o coletor do transistor nos 5v direto, ai no emissor coloquei o resistor de 10k aterrando e mandei o emissor para a entrada digital 2, continuava disparado, mas ai fiz um teste inverti a leitura digital de if (digitalRead(botaoIncrementa) == HIGH, troquei por LOW, e resolveu, ele conta somente quando interrompe o feixe, mas se puder poste para mim como voce faria somente para eu ter uma ideia melhor, estou terminado a parte mecanica, ainda falta testar se da para fazer um feixe bem fino para o led interromper,, e depois testar a velocidade. Com tudo pronto só vai faltar o lcd

aguardo seu comentario

e mais uma vez obrigado pela ajuda..
Logged

Pages: [1] 2   Go Up
Jump to: