Ir ao conteúdo
  • Cadastre-se

PIC preciso controlar dois motores dc por rele com pic 16f877a


Posts recomendados

Ola pessoal boa tarde !!

 estou com um projeto de uma mini vending machine, ela vai ter duas molas para liberar os produtos e as mesmas serão adaptadas a dois motores dc(motor de vidro de carro) e acionadas por um botão. no caso do motor ele só vai girar para um lado, eu preciso ter o controle do giro dele, preciso que ele de uma volta inteira para liberar o produto que ficara entre a mola. 

 

na maquina só vai conter dois motores, dois botões, um para cada mola e um display para mostrar as informaçoes e orientar as pessoas.  eu ainda nao domino esse mundo da programaçao, sou iniciante e tenho muitas duvidas quanto a isso, programação, hardware virtual, etc.. gostaria muito da ajuda de vcs. desde ja agradeço !!  :) 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Hi... welcome

 

Dar a volta inteira é fácil. Coloque uma chave ótica ou um reed swich e um ímã no eixo pra sentir a volta. Um algoritmo simples como:

-ligue o motor

zero:

-gire até achar o sensor

-desligue o motor

-aguarde pressionar o botão

-ligue o motor

-dá um tempinho pra sair do sensor

-volte a zero:

Pronto! Uma volta completa e meio caminho andado!

 

Escrever no display só parece mas não é nada difícil.

 

Programação tem aos montes. Escolha a que mais lhe apetece. Hardware virtual tem o proteus que é bem bacana. Dê os primeiros passos mostrando algo que já fez com sucesso. Publique o esquema.

 

Se não fez nada, sem problema. Todos somos eternos iniciantes. Mas pelo menos tente e não tenha medo de errar (pelo menos na simulação do virtual kk) . Dica: comece com um pisca led.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Carol Abdias ,

 

Bem vinda ao Fórum.

 

O motor é DC, só gira para um lado, mas você precisa que ele sempre dê voltas inteiras.... como você vai saber o momento de desligar o motor ?

 

Se o seu projeto é com esse Pic, você deve ter tido aulas sobre ele, sobre como funcionam timers, conversores A/D, etc, certo ?

 

Todo projeto começa pelo esquema eletrônico, sugiro você fazer o seu no Proteus para poder rodar a simulação nele, e publique para que possa ser ajudada !

 

Paulo

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Ola amigo, boa noite ! 

Sim o motor é DC, e só vai girar para a direita no caso. Esse motor é aquele de vidro elétrico de carro. Geralmente ele vem com um eixo padrão de oito dentes, mas eu retirei esse eixo e agr esta com um eixo adaptado que tem um chanfre. Nesse motor vai também um micro switch e quando ele bate no eixo detecta que o motor deu uma volta.Screenshot_20180327-234516.thumb.png.633f70ca108a63b990b795897ceff22d.png

Screenshot_20180327-234531.png

adicionado 7 minutos depois

@Isadora Ferraz

 

Obrigada amiga, já me ajudou com as suas informações, eu vou postar uma foto do esquema elétrico que eu fiz no proteus, mas não sei se esta correto. 

 

Eu esqueci de lhe dizer, mas nesse motor tem um eixo adaptado para segurar a mola e nesse eixo tem um chanfre e também um micro switch. Vou postar uma imagem para você entender melhor. 

IMG-20180319-WA0000.jpg

Screenshot_20180327-234531.png

Screenshot_20180327-234516.png

adicionado 9 minutos depois

@aphawk

 

Paulo, eu esqueci de postar a imagem do esquema que eu fiz no proteus. Não sei se esta correto. Mas eu tentei fazer, rs !! 

IMG-20180319-WA0000.jpg

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Carol Abdias ,

 

Opa , me surpreendeu kkkk , está indo bem viu !!!

 

Use sempre o modelo ativo de relé e o de botão também, ajuda muito na simulação.

 

Ví 4 botões, e como você havia dito que na máquina apenas dois botões são usados, creio que os outros dois são os micro-switchs ligados aos eixos dos dois motores. 

 

Separe eles no seu desenho, por exemplo colocando cada um perto de seu motor, para fim de melhor visualização e simulação.

 

Dê os nomes a cada botão e a cada motor.

 

Ah, não esqueça de fazer a configuração do seu Pic no Proteus !

 

Agora, a parte da programação eu não consigo te ajudar, mas a @Isadora Ferraz é fera nisso, e outros membros podem te ajudar bastante.

 

Agora, sobre a programação, qual o compilador que será utilizado ?

 

Paulo

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
9 horas atrás, Carol Abdias disse:

bate no eixo detecta que o motor deu uma volta

Pronto!

No proteus penso que não tem motor com isso mas sem problema: coloque um botão qualquer. Tente, crie algo com o algoritmo que passei. Por ser simples, nem precisa mas se achar que deve faça um fluxograma (o que não deixa de ser um minitreinamento pro que te espera no futuro).

 

3 horas atrás, aphawk disse:

a parte da programação eu não consigo te ajudar

Troque o mc pra avr atmega, faça em basic que Paulão te ajuda sim. :wiggle::P

 

Se precisar de algo em C, tmj. Mas se for ccs...

3 horas atrás, aphawk disse:

outros membros podem te ajudar bastante.

sorry...:(

abç

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

bom dia amigos, sim eu vou programar em c, eu tive um conhecimento bem básico, faço etec, então vi apenas o inicio de tudo mesmo. na escola, a gente usava o micro c pro for pic. e é esse que eu vou usar. então minha amiga isadora vai poder me ajudar, rsrs !! 

adicionado 6 minutos depois

@Isadora Ferraz na escola a gente fez coisas como tipo, piscar um led. nada envolvendo motores, relés, sensor, display. procuro na internet, mas não encontro nenhuma programação que me ajude a conciliar todos esses itens. por isso minha dificuldade tremenda em começar a fazer essa programação, tipo, não sei onde o sensor vai aparecer, como mandar o comando de ligar e desligar o motor no tempo certo, do botão acionar o motor. vontade de aprender eu tenho muita, mas não tenho uma base para me auxiliar. a minha escola é muito defasada nessa área de lógica. pretendo fazer um curso especifico assim que eu concluir a etec. 

  • Curtir 1
  • Triste 2
Link para o comentário
Compartilhar em outros sites

2 horas atrás, Isadora Ferraz disse:

Troque o mc pra avr atmega, faça em basic que Paulão te ajuda sim. :wiggle::P

 

KKKK legal você ein !!! Pode ser Atmega ou Attiny também .... Mas fazer isso no Bascom seria uma têta enorme kkkk !

 

1 hora atrás, Carol Abdias disse:

na escola a gente fez coisas como tipo, piscar um led. nada envolvendo motores, relés, sensor, display. procuro na internet, mas não encontro nenhuma programação que me ajude a conciliar todos esses itens. por isso minha dificuldade tremenda em começar a fazer essa programação, tipo, não sei onde o sensor vai aparecer, como mandar o comando de ligar e desligar o motor no tempo certo, do botão acionar o motor. vontade de aprender eu tenho muita, mas não tenho uma base para me auxiliar. a minha escola é muito defasada nessa área de lógica. pretendo fazer um curso especifico assim que eu concluir a etec. 

 

Primeiro minha revolta : se a escola nem ensina nada sobre usar um display. como quer que vocês façam um projeto ????? Pelo jeito nem técnicas de programação foram ensinadas ?  Se é para isso que pagam a escola, é uma baita sacanagem, tem de exigir muito mais do curso ( ou do professor ! ) . Já ensinar sobre Pics, ignorando o mundo atual de Arduínos, Avrs e Arms é um baita atraso de mais de 10 anos !!!! Depois vocês se formam e não sabem nada de nada do que se usa atualmente !  Bando de escolas hipócritas !

 

Quanto ao resto :

 

Você vai ter de usar uma biblioteca para o display. Apenas ela e mais nenhuma. Veja apenas as funções básicas de escrita, que são apagar o conteúdo do display, posicionar na linha e coluna desejada, e escrever o que você quiser. Se quiser também pode ligar ou desligar o cursor, e também ligar ou desligar o backlite ( se seu display tiver isso ). No início você vai ter de declarar os pinos que serão utilizados , esse tipo de coisinha básica. Procure por uma biblioteca simples e relativamente atualizada para uso com o MIkro C.

 

Aproveitando... não sei se esse é o melhor compilador, acho que a @Isadora Ferraz pode dizer mais sobre isso.

 

Quanto ao fluxograma, você tem de imaginar como isso tudo vai funcionar, e desenhar o fluxograma, testando se tiver algum botão apertado, e se tiver, mandando o motor correspondente girar ( caso nenhum esteja já acionado ! ) e ficar esperando ele dar a volta completa, que será obtida quando o seu microswitch for acionado, ( o que é um segundo teste.. ) . E tem de mandar também as coisas ao display conforme o momento correto.

 

Nada difícil, apenas pense se você mesma fosse o microcontrolador, o que que você faria, passo a passo, quando alguém aperta um dos dois botões ?

 

Quanto a tempo certo de ligar e de desligar o motor, não precisa nada disso, é um motor DC com mecanismo lento. Apenas verifique se um dos motores já não está acionado, se estiver tem de esperar ele terminar o giro e desligar, antes de mandar algum deles ligar de novo ! Para saber se terminou o giro, basta ficar lendo o seu microswitch.

 

Outra dica, botões tem ruído, então sugiro implementar alguma técnica de Debouncing , senão seu programa pode ficar doido... quando você aperta o botão, são gerados milhares de ruídos tipo liga/desliga durante alguns milissegundos, então você precisa ignorar esses ruídos por um certo tempo, digamos uns 20 milissegundos. 

 

A maneira correta seria usar um dos Timer do seu Pic, mas pode ser feito sem isso, apenas por software, usando um comando tipo DELAY()  ou WAIT() pelos milissegundos necessários. Existem bastante discussões e posts antigos sobe isso no Fórum, use a ferramenta de pesquisa do Fórum ok ?

 

Paulo

 

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

  • Membro VIP
2 horas atrás, aphawk disse:

não sei se esse é o melhor compilador

É um excelente compilador pra iniciantes! Tem (tinha quando mexi com ele) muita coisa pronta, exemplos que vêm com ele são uma ótima fonte de consulta. Tem (tinha) até o exemplo do display lcd e tal. Meio que mastiga um pouco demais o que não o deixa ser portável mas azápralá.

abç

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Isadora Ferraz pelo pouco conhecimento que eu tenho no momento vou utilizar esse mesmo. eu estava observando a biblioteca dele do lcd, por acaso você conhece alguém que possa fazer esse projeto comigo desde a forma correta de fazer ele no proteus para virar uma PCI e também a parte de programação eu fiquei sabendo que existem pessoas que cobram para  fazer isso, mas gostaria na verdade que me ensinassem e não viesse totalmente pronto. 

 

Desde já agradeço por todo o apoio !! 

adicionado 12 minutos depois

@aphawk sim amigo, realmente é catastrofico não ter o conhecimento necessario para o tipo de projeto que preciso fazer, é um TCC e eles colocam como orientador um professor que não entende nada de lógica. eu andei observando essa parte do debouncing que você disse, seria tipo um delay pro botão, certo ?  se o botão for pressionado espera 100 mile segundos . if(botao = 1) { delay_ms(100); eu acho que é isso.. eu também vi a biblioteca do display lcd no mikro c, só nao consigo conciliar todos os itens ao mesmo tempo para fazer o fluxograma. tipo eu imagino, o inicio do fluxograma: apertou botão 1 se sim, aciona motor 1, ai me enbanano toda na parte do sensor, tipo, após acionar motor 1 bate no sensor detecta um giro e libera o produto. ai o motor para. ai vem a parte escrita do display, tipo mostrando a pessoa assim: pressione botão 1 para adquirir o fone de ouvido, ai a pessoa presiona o botão um e o motor faz todo esse processo que eu citei em cima. como eu disse agr a @Isadora Ferraz existem pessoas que cobram para fazer esses projetos, eu queria ver essa possibilidade, mas eu queria aprender e não pagar para que fizessem tudo, queria que me auxiliassem a fazer esse projeto desde o hardware ao software, tipo a distancia, por video, coisa parecida. por que meu professor simplesmente vira para a sala e diz se vira. se virar não é difícil quando se tem uma boa estrutura para seguir. só posso agradecer a vcs pelo apoio que estão me dando, obrigada demais !!  

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Carol Abdias ,

 

Olha, pagar para fazer isso não é a maneira correta, afinal, que tipo de profissional você quer ser quando se formar ?

 

Não é melhor você sofrer um pouco e aprender da maneira que deve ser feito, entender o porquê de cada coisa ? Já pensou aprender a fazer seus projetos, você mesma programar, e ver o projetinho real funcionando ?

 

Acredite em você !!!!!!!

 

Não estamos nos negando a ajudar, mas também não podemos fazer todo o projeto para você. E eu não entendo patavina nenhuma de C, então é como se deixasse a bucha toda do software prá @Isadora Ferraz e para outros que possam te ajudar.....

 

Já que você está usando o Proteus, verificou se não existem alguns projetos nele com o MiKro C ??? tenho quase certeza que sim, então você poderia carregar um deles e ver a programação, a inicialização, esse tipo de coisa !

 

Veja no site do Mikro C alguns exemplos, carregue o compilador, brinque um pouco com um programa simples, e carregue a simulação no Proteus. Tire suas dúvidas aqui no Fórum.

 

Acredite, seu projeto é bem simples, não é um bicho papão, eu faço ele em Basic com o Bascom, usando um Atemga328 ou um Arduíno Uno em menos de uma hora com certeza !

 

Não é que eu sou um gênio não kkkkkkk é que é mesmo bem simples ! A @Isadora Ferraz , se tivesse tempo sobrando , também faria isso rapidinho ( te ferrei agora Isa kkk ) .

 

Insista em fazer por você mesma, o hardware você já quase terminou, falta pouco, poste o arquivo real do projeto do Proteus para que a gente possa te ajudar também na simulação, ok ?

 

Paulo

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Carol Abdias ,

 

Veja que legal, tem muitos vídeos ensinando a simular no Proteus os projetos escritos com o Mikro C !!!

 

https://www.google.com.br/search?q=mikro+c+with+proteus&ie=utf-8&oe=utf-8&client=firefox-b&gws_rd=cr&dcr=0&ei=fzS8WrmIKMuLwgTi_J-QCw

 

Achei esta apostila da USP, é bem legal também, tem exemplos com o Mikro C que vão te ajudar muito no seu projeto ! Por exemplo, na página 44 tem um belo exemplo de como usar o display LCD !

 

https://edisciplinas.usp.br/pluginfile.php/4113147/mod_resource/content/1/Notas de Aula - Microcontroladores - 10092017.pdf

 

Tá vendo como o bicho não é tão feio ?

 

Paulo

Link para o comentário
Compartilhar em outros sites

Rsrs, realmente nao é.. E a apostila é muito boa, vou dar uma boa lida nela. Estava tentando criar um fluxograma no tempo que tive livre na escola, amanhã vou postar ele para que você dê a sua opinião.. Muuuuito obrigada amigo !! Tenho certeza que amanhã já vai sair alguma coisa dessa programação. :)

Link para o comentário
Compartilhar em outros sites

@aphawk bom dia amigo, eu dei uma modificada no esquema pelo proteus. coloquei os dois sensores próximos aos motores como você havia falado. e também coloquei mais um botão, por que eu não havia pensado em como a pessoa teria acesso as informações para adquirir os produtos. tipo um botão pra pessoa acessar um menu. então no total a vending terá três botões. B1 para acessar o menu, B2 para adquirir um produto e B3 para adquirir o outro produto. da uma olhadinha na imagem, acho que assim fica mais fácil de interpretar a situação.. :)

IMG-20180329-WA0000.jpg

adicionado 38 minutos depois

@Isadora Ferraz ola amiga, bom dia !! 

 

tanto você qto o paulo @aphawk me disseram para fazer um fluxograma para melhor entendimento. o paulo me disse para me colocar no lugar da maquina e imaginar o que ela faria rsrs. eu fiz algo a respeito, não sei se da forma correta. mas me comportei como a maquina kkkk. se vcs puderem me dar umas dicas qto a esse fluxograma eu agradeço muito.. obrigada amigos :) 

fluxo.docx

Link para o comentário
Compartilhar em outros sites

@Carol Abdias ,

 

Ajuda a gente... em vez de mandar foto, pega o arquivo do Proteus, compacta ele em ZIP ou em RAR, e anexe ao seu post, assim nós podemos também abrir direto nos nossos micros, fica muito mais fácil de entendermos ok ?

 

Sobre o fluxograma, bom .... kkkkkk ... é um bom início !

 

Existem símbolos específicos para indicar comparações, saídas em display, testes lógicos, acionamento de saídas, etc .... 

 

Veja alguns exemplos :

 

Diagramas-Chapin-Fluxogramas1.jpg

 

 

Diagramas-Chapin-Fluxogramas5.jpg

Falta explicar mais cada etapa que voce tem de analisar e detalhar as atitudes que serão feitas a partir de cada ação tomada , entendeu ?

 

Mas já foi um bom começo !

 

Dá mais uma caprichada, detalhe mais o procedimento a partir de cada botão que é acionado, tipo assim :

 

se o botão 1 for acionado, verificar se o motor não está girando; Se estiver, não faz nada e volta pro menu inicial; Se não estiver, então acione o motor, apague o display, coloque a mensagem "aguarde .. " , fica monitorando se deu a volta completa, e se deu, apagar display e apresentar a nova mensagem, e então desligar o motor e voltar ao inicio.

 

Percebeu a diferença ? cada ação está descrita !

 

Paulo

 

 

Paulo

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Eu (eu) não sou fã de baixar anexos. Prefira publicar direto. Nem precisa tirar foto. Faça printscreen (reduza cores pra 16, tamanho pra 640/480 e salve em jpg ou png o que ficar menor. Use irfanview https://www.irfanview.com/, simply and simply the best)

Publique algo que tivestes sucesso e faça perguntas cujas respostas sejam sim ou não ou não sei :P

 

Link para o comentário
Compartilhar em outros sites

@Isadora Ferraz essa é a imagem do proteus que eu estava falando, desculpe, não posso baixar esse programa, utilizo o computador da empresa no momento. :( 

Obrigada pelas dicas, abraço !! 

 

o paulo me deu umas dicas para fazer o fluxograma, eu também estava praticando algumas coisas com led da apostila que ele me passou, vou começar a fazer uma programação a partir desse esquema no proteus pra ver se vai dar certo. Obrigada !!

proteus.png

Link para o comentário
Compartilhar em outros sites

@Isadora Ferraz ,

 

Eu que pedí o arquivo do Proteus, fica mais fácil para verificar.

 

 

@Carol Abdias ,

 

Sugiro deixar em aberto os pinos do display D0, D1, D2 e D3 , em vez de liga ao terra. Já tive problema com alguns displays que não funcionavam dessa maneira. Mas deixando em aberto todos funcionam !

 

 

 

39 minutos atrás, Isadora Ferraz disse:

 e faça perguntas cujas respostas sejam sim ou não ou não sei :P

 

 

KKKKKK !!!

 

Paulo

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...