добрый день. Я работаю над проектом с ATmega16A, где пытаюсь управлять двумя серводвигателями, чтобы поддерживать баланс лотка. Проблема в том, что сервоприводы работают индивидуально для поддержания баланса, но когда я подключаю 2 сервопривода, они перестают работать. Я хотел узнать, знает ли кто-нибудь, как заставить их работать вместе.
para controlar bien servo X
#define F_CPU 1000000UL
#include
#include
#include
#include "lcd.h"
// Definición de pines para el sensor ADXL335
#define xpin 1 // ADC1 en ATmega16 (ADC1 en PA1)
#define ypin 2 // ADC2 en ATmega16 (ADC2 en PA2)
// Definición de pines para los servos MG90S
#define servoX_pin PB5 // Puerto B, pin 5 para control del servo X (OC1A)
#define servoY_pin PB3 // Puerto B, pin 3 para control del servo Y (OC0)
char buffer[16];
uint16_t last_x_val = 0; // Variable para almacenar la última lectura estable del ADC para el eje X
uint16_t last_y_val = 0; // Variable para almacenar la última lectura estable del ADC para el eje Y
// Función para mapear valores de una escala a otra
int16_t map(int16_t x, int16_t in_min, int16_t in_max, int16_t out_min, int16_t out_max) {
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
void setup() {
DDRA = 0x00; // Puerto A como entrada para los pines del ADC
DDRB |= (1
Подробнее здесь: https://stackoverflow.com/questions/787 ... -atmega16a