====== Encoders ====== //Relacionado com módulo: [HW] [[pt:hardware:homelab:motor]]// Esta biblioteca incluí funções para uso dos encoders do Homelab. ===== Funções ===== * **//void encoder_init(unsigned char index)//** \\ Configura o encoder selecionado e os pins de entrada. Parâmetros: * //index// - Número do encoder. Valor 0 ou 1. * **//void encoder_reset_pulses(unsigned char index)//** \\ Reinicializa e recomeça o contador no encoder selecionado. Parâmetros: * //index// - Número do encoder. Valor 0 ou 1. * **//unsigned short encoder_get_pulses(unsigned char index)//** \\ Requisita os impulsos contados do encoder. Parâmetros: * //index// - Número do encoder. Valor 0 ou 1. * Devolve o número de pulsos. ===== Exemplo ===== // // Example of using the Homelab's encoders. // The number of pulses is displayed on LCD. // #include #include #include #include #include #include // Button pin pin button2 = PIN(C, 1); int main(void) { unsigned short pulses = 0; char text[16]; // Sets buttons pin_setup_input_with_pullup(button2); // Initialization of encoder encoder_init(0); // Reset and start counting encoder_reset_pulses(0); // LCD display initialization lcd_gfx_init(); // Clear display lcd_gfx_clear(); // Turning back light ON lcd_gfx_backlight(true); // Displaying source code name lcd_gfx_goto_char_xy(3, 1); lcd_gfx_write_string("Encoder"); while (true) { pulses = encoder_get_pulses(0); // Generating a string sprintf(text, "Pulsse: %d",pulses); lcd_gfx_goto_char_xy(0, 3); lcd_gfx_write_string(text); // Button 2 is pressed if(!pin_get_debounced_value(button2)) { // Reset and start counting encoder_reset_pulses(0); // Make a beep buzzer_sound (60, 100); // Erase previous number lcd_gfx_write_string(" "); } // Software delay for 10 ms sw_delay_ms(10); } }