Ir ao conteúdo

Posts recomendados

Postado

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
  • Moderador
Postado

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
  • Membro VIP
Postado

Amigo mostre o que já fez. E isso daí está praticamente no mesmo patamar da inqueimável etapa de um pisca led com pic que é seu hello world. Faça o led piscar e o mundo cairá aos seus pés.

  • Obrigado 1
  • Haha 3
Postado

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

  • Membro VIP
Postado

 

  Em 14/12/2023 às 18:08, Rodrigo Magalhaes2023 disse:

ajudar editando com o resultado esperado?

Expandir  

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? 😑
 

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

Mostrar 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

Mostrar mais  
×
×
  • Criar novo...