salut
la libraire , SoftwareServo.zip c'est
ICI, a mettre dans le repertoire Arduino, librairie
Oui ont peut reprogrammer X fois un AtTiny, par contre il faut le formater au départ (la première fois) ,voir le site d'Alain , pour savoir comment faire
Oui le programme (le 1er) que j'ai fais peut te convenir, par contre ,je ne l'ai pas encore testé dans le soum, et le capteur n'ayant pas une grande précision, il ne peut servir que pour une sécurité de profondeur maxi
donc il faudra modifier les valeurs de rotation du servo pour les adapter a ton system
Code : Tout sélectionner
Angle_Servo_vidange = 90
Angle_Servo = map(Val_SignalRecepteur, 1100, 1800, 45, 135); // Calibre des valeurs de pour le servo de ±45°°
Angle_Servo = constrain(Angle_Servo, 45, 135); // Fixe les valeurs minimum et maximum en degré de monservo
il te faudra peut être rajouter un délai pour ton air,si tu remontes au dessus de la profondeur maxi,la télécommande reprend le servo en main,par contre en cas d'entrée d'eau, le servo restera dans cette position et videra tout ton air, puisque je l'ai conçu ainsi ,car je ne veux surtout pas pouvoir replonger,i
les valeurs d’impulsion du récepteur seront a redéfinir (cela dépend de la voie utilisée et de la marque du récepteur/Émetteur
il te faut faire un petit programme que te permettra de lire ces valeurs
Modifier les numéros de sortie (pin) pour tester sur un arduino, bien que cela doit fonctionner normalement
Pour copier/coller, tu sélectionnes tout le texte,les 2 touches
CTRL+C (pour copier) , ensuite pour coller, tu positionnes ta sourie a l'endroit ou tu veux coller ton code ou texte,et tu fais avec les deux touche
CTRL+V
Exemple de programme que te permettra de lire les valeurs
Code : Tout sélectionner
//initialisation des voies.
//7 et 8 sur ma radiocommande.
//voie 7 sur potentiomètre rotatif de ma futaba
//voie 8 sur un interrupteur 2 positions à retour automatique sur ma futaba
int mesure_voie7;
int mesure_voie8;
void setup() {
// choix des entrée d2 et d3 de l'arduino
pinMode(2, INPUT);
pinMode(3, INPUT);
// vitesse de transfert arduino sur le port série
Serial.begin(9600);
}
// boucle infinie
void loop() {
// mesure les fronts hauts du signal(pwm(carré)) émis sur les voies 7 et 8 du récepteur de la radiocommande vers les entrées d2 et d3 de l'arduino
mesure_voie7 = pulseIn(2, HIGH, 30000);
mesure_voie8 = pulseIn(3, HIGH, 30000);
// affiche sur le moniteur série du programme arduino les résultats
// les mesures de la voie 7 varie de 1190 au min à 1840 au max en passant par 1500 au milieu.
// les mesures de la voie 8 passe de 1090 interrupteur au repos à 1900 interrupteur enclenché.
Serial.print("mesure_voie7=");
Serial.println(mesure_voie7);
Serial.print("mesure_voie8=");
Serial.println(mesure_voie8);
delay(200);
}