/******************************************************************************
Nome do Arquivo : main.c
Descrição : Arquivo principal aula 14, exemplo 1
Ambiente : WOKWI e RP2040 C/C++ SDK
Responsável : Weslley M. Torres
Versão/Data : 1.0.0 - 25/03/2024 - Initial version
*****************************************************************************/
/******************************************************************************
HEADER-FILES (Somente os arquivos necessários nesse arquivo)
******************************************************************************/
#include <stdio.h>
#include "pico/stdlib.h"
#include "display_lcd.h"
#include "hardware/gpio.h"
#include <math.h>
#include <string.h>
#include "hardware/i2c.h"
#include "pico/binary_info.h"
#include "display_LCD_i2c.h"
/*****************************************************************************/
#define dir 15 // Ligado ao pino DIR 74ls245
#define btn0 0 // Ligado ao pino botao 0
#define ch1 4 // Ligado ao pino switch posicao 1
/******************************************************************************
Variaveis Globais
******************************************************************************/
/*****************************************************************************/
/******************************************************************************
Prototipos das funções
******************************************************************************/
/*****************************************************************************/
/******************************************************************************
Funcao: int main(void)
Entrada: Nenhuma (void)
Saída: Nenhuma (void)
Descrição: Função principal
*****************************************************************************/
int main()
{
stdio_init_all();
lcd_init( );
lcd_set_cursor(0,0);
lcd_string("BTN0[GPIO_0]");
lcd_set_cursor(1,0);
lcd_string("CH1[GPIO_4]:");
gpio_init(dir);
gpio_set_dir(dir, GPIO_OUT);
gpio_put(dir, 0);
sleep_ms(10);
gpio_init(btn0);
gpio_set_dir(btn0, GPIO_IN);
gpio_init(ch1);
gpio_set_dir(ch1, GPIO_IN);
uint8_t texto_linha_um[17] = "FATEC S.A. 2025";
uint8_t contador = 0;
stdio_init_all();
init_lcd();
sleep_ms(250);
posicao_cursor_lcd(1, 1);
escreve_frase_ram_lcd(texto_linha_um);
DesligaCursor();
sleep_ms(500);
char valor[16] ;
uint8_t tempo=0;
while(1)
{
posicao_cursor_lcd(2, 1);
escreve_inteiro_lcd(contador);
posicao_cursor_lcd(2, 10);
lcd_set_cursor(0,14);
sprintf(valor, "%d", gpio_get(btn0));
lcd_string(valor);
lcd_set_cursor(1,14);
sprintf(valor, "%d", gpio_get(ch1));
lcd_string(valor);
if (tempo >100){
if ( contador <9 ){
contador++;
}else{
contador = 0;
}
tempo=0;
}else{
tempo++;
}
sleep_ms(10);
}
}