Robot_Riombotique/main.c

96 lines
1.7 KiB
C
Raw Normal View History

2023-10-22 16:48:14 +00:00
/*****
* Copyright (c) 2023 - Poivron Robotique
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include "pico/stdlib.h"
2023-12-16 11:12:55 +00:00
#include "hardware/pwm.h"
#include "hardware/adc.h"
2023-10-22 16:48:14 +00:00
#include <stdio.h>
2023-12-16 11:12:55 +00:00
#define MOTEUR1_PIN_SENS1 2
#define MOTEUR1_PIN_SENS2 3
#define MOTEUR1_PIN_ACTIVATION 0
#define MOTEUR2_PIN_SENS1 4
#define MOTEUR2_PIN_SENS2 5
#define MOTEUR2_PIN_ACTIVATION 1
int sens_moteur1 = 0;
int sens_moteur2 = 0;
void upload_motor(void);
2023-10-22 16:48:14 +00:00
void main(void)
{
stdio_init_all();
2023-12-16 11:12:55 +00:00
gpio_init(MOTEUR1_PIN_SENS1);
gpio_set_dir(MOTEUR1_PIN_SENS1, GPIO_OUT);
gpio_init(MOTEUR1_PIN_SENS2);
gpio_set_dir(MOTEUR1_PIN_SENS2, GPIO_OUT);
gpio_init(MOTEUR2_PIN_SENS1);
gpio_set_dir(MOTEUR2_PIN_SENS1, GPIO_OUT);
gpio_init(MOTEUR2_PIN_SENS2);
gpio_set_dir(MOTEUR2_PIN_SENS2, GPIO_OUT);
gpio_init(MOTEUR1_PIN_ACTIVATION);
gpio_init(MOTEUR2_PIN_ACTIVATION);
gpio_set_function(MOTEUR1_PIN_ACTIVATION, GPIO_FUNC_PWM);
gpio_set_function(MOTEUR2_PIN_ACTIVATION, GPIO_FUNC_PWM);
pwm_set_wrap(0, 1000);
pwm_set_chan_level(0, PWM_CHAN_A, 800);
pwm_set_enabled(0, true);
sens_moteur1 = 1;
sens_moteur2 = 1;
upload_motor();
2023-10-22 16:48:14 +00:00
while(1){
2023-12-16 11:12:55 +00:00
tight_loop_contents();
2023-10-22 16:48:14 +00:00
}
}
2023-12-16 11:12:55 +00:00
void upload_motor(void)
{
switch(sens_moteur1)
{
case 0:
gpio_put(MOTEUR1_PIN_SENS1, 0);
gpio_put(MOTEUR1_PIN_SENS2, 0);
break;
case 1:
gpio_put(MOTEUR1_PIN_SENS1, 1);
gpio_put(MOTEUR1_PIN_SENS2, 0);
break;
case 2:
gpio_put(MOTEUR1_PIN_SENS1, 0);
gpio_put(MOTEUR1_PIN_SENS2, 1);
break;
}
switch(sens_moteur2)
{
case 0:
gpio_put(MOTEUR2_PIN_SENS1, 0);
gpio_put(MOTEUR2_PIN_SENS2, 0);
break;
case 1:
gpio_put(MOTEUR2_PIN_SENS1, 1);
gpio_put(MOTEUR2_PIN_SENS2, 0);
break;
case 2:
gpio_put(MOTEUR2_PIN_SENS1, 0);
gpio_put(MOTEUR2_PIN_SENS2, 1);
break;
}
}