Fórum

Notifications
Clear all

AJUDA COM PROGRMA

5 Posts
2 Users
0 Likes
2,322 Leituras
(@carlos-henrique)
New Member
Joined: 10 anos ago
Posts: 2
Topic starter  

Olá Claudio, vamos ver se você pode me ajudar, irei escrever por passos, precisava de um programa para pic 12f629 ou 12f675 bem simples mas não tenho muita noção com programação, seria assim um botão que ao pressionar ele manda negativo pro pic e uma saida do pic com temporizador dor de 1 minuto e uma outra para acionar dois leds de alto brilho e outra para disparo de um buzzer o mesmo ja com oscilador e no programa do pic sleep para que economize bateria esse porjetor seria para um interruptor de porta de carro seria possivel me ajudar nesse projeto?
Obrigado !
Carlos Henrique

 


   
Quote
(@clarios)
Reputable Member Admin
Joined: 12 anos ago
Posts: 357
 

Olá Carlos Henrique!

Eu não entendi bem o que você deseja fazer. Mas seria interessante você aumentar a sua 'noção' de programação antes de se aventurar com programação de pics. Você encontrará vários tutoriais e até mesmo cursos de pic no YouTube. Basta abrir o YouTube e digitar na pesquisa 'curso de pic'. Faça pequenos projetos do tipo 'pisca-led' , 'sequenciais de led', etc. Poderá estudar os programas de outros colegas postados na internet. Tudo isto ajuda bastante!


   
ReplyQuote
(@carlos-henrique)
New Member
Joined: 10 anos ago
Posts: 2
Topic starter  

Larios para simplicar seria assim aperando 1 botão ele aciona 2 saidas sendo que uma delas pisque um led e a outra tenha um temporizador de no maximo 1 minuto, mas se manter esse botão precionado ele fica piscado o led e a saida do temporizador só começa a contar esse 1 minuto para desligar ela quando solta o botão, mas se precionar de novo ele volta a contar 1 minuto, e queria que o pic entre em repouso se não precionar esse botão, para que diminua o consumo dele, pq vai ser ligado com bateria, sei que seu tempo é curto mas ve se consegue me ajudar preciso muito disso e sempre  acompanho seus projetos e acho todos perfeitos.  

Obrigado!

Carlos Henrique


   
ReplyQuote
(@clarios)
Reputable Member Admin
Joined: 12 anos ago
Posts: 357
 

Olá Carlos!

Você já começou a fazer o programa? Qual é o problema que encontrou para que possa tentar ajuda-lo? 


   
ReplyQuote
(@clarios)
Reputable Member Admin
Joined: 12 anos ago
Posts: 357
 

Tente fazer algo parecido com isto, ou mude conforme achar necessário:

 

/****************************************************************************

PROGRAMAS_CCS_C_EX2

Exemplos de programas com compilador CCS C

 

Temporizando leds de iluminação (tempo 1 minuto)
(Usando interrupção por mudança de estado para sair do modo 'sleep')

 

Autor: Claudio Lários

 

Data: 20/04/2018

Uso: Iluminação interna temporizada para veículos.

Ao acionar o interruptor ligado ao pino 5 veremos na saída 1 o led
sinalizador piscar enquanto o interruptor estiver acionado.
A saída 2 também ligará um led de alto brilho para fins de iluminação.
A saída 3 permanecerá ligada também enquanto o interruptor estiver ligado e
manterá um buzzer apitando.
Ao soltar o interruptor, o led sinalizador irá apagar, o buzzer cessa seu
apito e o led de iluminação permanece aceso por mais um minuto e ao término
do tempo irá apagar.
Em seguida, o programa entra em modo 'Sleep'para economia de energia.

Blog PicSource

*************************************************************************/

 

#include <12F675.h>//microcontrolador PIC12F675
#use delay(clock=4000000)//internal
#fuses NOWDT,INTRC_IO, NOPUT, NOPROTECT, BROWNOUT, NOMCLR, NOCPD//fuses

//bytes

#byte gpio = 0x05
#byte trisio = 0x85
#byte option_reg = 0x81
#byte wpu = 0x95
#byte ioc = 0x96
#byte intcon = 0x0b
#byte ansel = 0x9f

//flags
#bit gpif = 0xb.0 //flag da interrupão de mudança de estado

//bits
#bit sw = 0x5.2 //pino 5
#bit led_sinalizador = 0x5.4 //pino 3 (saida 1)
#bit led_iluminacao = 0x5.5 //pino 2 (saída 2)
#bit buzzer = 0x5.1 //pino 6 (saída 3 - use buzzer c/ oscilador)

 

/*************************************************************************
ROTINA MAIN
*************************************************************************/
void main(){
setup_comparator(NC_NC_NC_NC);//desliga comparadores analógicos internos
trisio=0b001101;//entradas/saídas
ansel=0;//ports todas digitais
option_reg=0; //liga geral dos pull-ups
wpu=0b000100;//liga pull-up no pino 5
ioc=0b000100;//liga interrupção por mudança no pino 5
gpio=0;//começa com leds desligados
intcon=0b00001000;//liga interrupção de mudança de estado
/
*************************************************************************
LAÇO DE REPETIÇÃO
****************************************************************************/
for(;;){
#define TEMPO_DESEJADO 600
unsigned int16 a;
if(sw){
gpif=0;//desliga flag de mudança
sleep();//entra em modo de economia de energia 'sleep'
delay_us(1);//'nop' pós acordar do 'sleep'
delay_ms(40);//debounce do interruptor
}

do{
while(!sw){
delay_ms(250);
led_sinalizador=!led_sinalizador;
led_iluminacao=1;
buzzer=1;//manter buzzer ligado
}
buzzer=0;//desliga buzzer
led_sinalizador=0;
for(a=0;a<=TEMPO_DESEJADO;a++){
if(!sw)break;
delay_ms(100);
}
}while(a<TEMPO_DESEJADO);

led_iluminacao=0;
}
}
//-----------------fim do programa----------------------------------------------

 

 

 


   
ReplyQuote
Back To Top