Frein sur tyrolienne

Bonjour terwal

Oui, c'est pire :woozy_face: , j'ai supprimé les liens, je n'ai pas compris ce qui c'est passé avec les raccourcis ChatGPT.
Je mets la version ChatGPT Arduino, corrigée pour fonctionner avec des potentiomètres, j'ai laissé les lignes inutilisées.

A0 = distance
A1 = vitesse

Le programme:


// Déclarations des broches
const int distanceSensorPin = A0; // Broche pour le capteur de distance (analogique)
const int speedSensorPin = A1; // Broche pour le capteur de vitesse (analogique)
const int actuatorPin = 9; // Broche pour l'actionneur (PWM)

// Variables pour stocker les valeurs des capteurs
volatile int speed = 0;
int distance = 0;

// Variables pour la gestion du temps
unsigned long previousMillis = 0;
const long interval = 100; // Intervalle de mise à jour en millisecondes

void setup() {
	pinMode(speedSensorPin, INPUT);
	pinMode(distanceSensorPin, INPUT);
	pinMode(actuatorPin, OUTPUT);

	// Configurer l'interruption pour le capteur de vitesse
	//attachInterrupt(digitalPinToInterrupt(speedSensorPin), countSpeed, RISING);

	Serial.begin(9600);
}

void loop() {
	unsigned long currentMillis = millis();

	if (currentMillis - previousMillis >= interval) {
		previousMillis = currentMillis;

		// Lire la distance
		distance = map(analogRead(distanceSensorPin), 0, 1023, 100, 0);
		speed = map(analogRead(speedSensorPin), 0, 1023, 0, 100);

		// Calculer la force de freinage
		int brakeForce = calculateBrakeForce(speed, distance);

		// Appliquer la force de freinage
		analogWrite(actuatorPin, brakeForce);

		// Afficher les valeurs pour le débogage
		Serial.print("Speed: ");
		Serial.print(speed);
		Serial.print(" RPM, Distance: ");
		Serial.print(distance);
		Serial.print(" cm, Brake Force: ");
		Serial.println(brakeForce);

		// Réinitialiser la vitesse pour le prochain intervalle
		speed = 0;
	}
}

// Fonction d'interruption pour compter la vitesse
//void countSpeed() {
	//speed++;
//}

// Fonction pour calculer la force de freinage
int calculateBrakeForce(int currentSpeed, int currentDistance) {
	// Exemple simple de calcul : augmenter la force de freinage en fonction de la vitesse et de la proximité
	int brakeForce = map(currentSpeed, 0, 100, 0, 255); // Adapter les valeurs max en fonction de votre capteur
	if (currentDistance < 50) { // Si la distance est inférieure à 50 cm, augmenter la force de freinage
		brakeForce = constrain(brakeForce + map(currentDistance, 0, 50, 100, 0), 0, 255);
	}
	return brakeForce;
}

Bonne journée
jpbbricole