Ir ao conteúdo
  • Cadastre-se

PIC programar um botão (RB0) para acender quando for pressionado


Posts recomendados

Pessoal, boa noite.

 

Venho encarecidamente solicitar a ajuda de alguns de vocês que são mais experientes no assunto de programação em linguagem C.

Sou novo na area de programação, estou tendo uma grande dificuldade numa atividade do curso, e não consigo resolver, a atividade é a seguinte;

 

O professor pediu para programar um botão (RB0) para que no momento em que ele for pressionado o Led RGB acenda a cor vermelho e apague e acenda o verde e apague e acenda o azul.

E um outro botão (RB1) para que no momento em que ele for pressionado o Led RGB acenda com as combinações de cores.

 

alguém pode me ajudar como fica essa programação? o micro controlador dessa atividade é o Pic18f4550 eu uso o Mplab x.

fico muito grato se alguém puder me ajudar.  

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

  • Moderador

Caro usuário,

 

Seja bem-vindo ao Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

 

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

  • DiF alterou o título para programar um botão (RB0) para acender quando for pressionado

Ola amigos, boa tarde a todos.

 

Estou tentando desenvolver um projeto atraves de linguagem C utilizando o microcontrolador PIC18F4550 E compilador XC8, mplabx.

sou iniciante na area e estou tendo grandes dificuldades.

preciso fazer um led RGB acender atraves de 1 botão ''RB0'' e acender a cor vermelho e depois a verde e depois a azul.

 

e com um outro botão ''RB1'' ele acender com todas as cores combinadas.

 

Segue abaixo a transcrição do meu projeto como ele está por enquanto, alguém pode me ajudar editando com o resultado esperado?

Em anexo tem um projeto do led RGB, eu tentei usar ele parar elaborar para a aplicação que eu desejo, mas ate agora sem sucesso.

 


/

*
 * File:   IMONITORR.c
 * Author: tecnico
 *
 * Created on 12 de Dezembro de 2023, 19:07
 */
#include <xc.h>
#include <p18f4550.h>
#include <stdlib.h>
#define LED_TRIS        TRISBbits.TRISB0
#define LED             LATBbits.LATB0

#pragma config FOSC = HS        // Oscillator Selection bits (HS oscillator (HS))
#pragma config FCMEN = OFF      // Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor disabled)

#define vermelho PORTEbits.RE0
#define verde PORTEbits.RE1
#define azul PORTEbits.RE2

void main (void){
    
    INTCON2bits.NOT_RBPU = 0;
    ADCON1 = 0b00001111;
    TRISD = 0X00;
    TRISB = 0x1F;
    TRISA = 0x03;
    TRISC = 0x80;
    TRISE = 0x00;
    
    vermelho = 0;
    azul = 0;
    verde = 1;
    
}

void init_io(void);
int main(void){
    
    init_io();
    while(1){
        LED = 1;
        
    }
        
}

void init_io(void){
    LED_TRIS   = 0;   
    
}


   

led RGB.png

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

 

16 horas atrás, Rodrigo Magalhaes2023 disse:

ajudar editando com o resultado esperado?

Ajuda a gente aí amigo. 😒

 

Vou te mostrar como eu (eu) inverteria o led por 1 botão neste compilador (que não uso) ok? É tri-fácil.

#define botao PORTAbits.RA0 //onde esta o botão
#define LED   PORTBbits.RB0 //não gosto do tal de LAT

ADCON1 = 0b00001111;
TRISB = 0x00; //tudo saída
TRISA = 0x01; //RA0=entrada

LED=0;
while(1)
{
if (!botao) LED ^= 1;//se pressionar - ligar ao gnd, inverte led
while(!botao); //tire o dedo do botão pow!
}

Algo me diz que agora você pode pegar o gancho e partir pra o domínio mundial. Nada de tirania hein... 😁

Dica de pesquisa pra somar conhecimento: pra que RA0 seja nível lógico 1 com botão não pressionado, há necessidade de um pullup pro vcc. Tarefa: este mc possui portas com pullup interno programável. Consulte o datasheet pra fazer com que haja a economia de um resistor. Refaça o programa.

 

Mas se seu propósito for apenas fazer o trabalho pra entregar e ficar livre dele, peço gentilmente que cogite mudar de carreira, ok? 😑
 

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!