Skip to main content

Sovol 3D (Lavage de résin) "Upgrade"

Dans ce projet, on cherche à trouver une solution à la machine de lavage Sovol 3D qui s'arrête après quelques essais. Pour cela, on envisage à changer la méchanisme de bouton (qui est actuellement faite avec une bouton de commutation) et la remplacer avec une système de bouton poussoire.

On utilise un Arduino Nano 328 comme base de notre projet, et pour le codage on se base sur des recherches conduites sur Internet et les forums de Github.

Première ébauche (22.3.2023)

const int startBouton = 2; // un bouton sur la broche 2
const int resetBouton = 3; // un bouton sur la broche 3
const int timerBouton = 4; // un bouton sur la broche 4
const int moteurPin = 5; // un moteur sur la broche 5

void setup()
{
    // on met le bouton en entrée
    pinMode(startBouton, INPUT_PULLUP);
    pinMode(resetBouton, INPUT_PULLUP);
    pinMode(timerBouton, INPUT_PULLUP);
    pinMode(moteurPin, OUTPUT);
    
}

int start_etat;
int reset_etat;
int timer_etat;
int t = 1;

void loop()
{
    start_etat = digitalRead(startBouton);
    reset_etat = digitalRead(resetBouton); 
    timer_etat = digitalRead(timerBouton);

    if(start_etat == HIGH)
        actionRelache(); // le bouton est relaché
    else
        actionAppui(actionAppuiStart(); // le bouton est appuyé

    if(reset_etat == HIGH)
        actionRelache();break; // lepeut-être boutonpas estla relachémeilleure elsesolution actionAppui();: //ajouter une fonction interrupt qui peut se faire même pendant le bouton est appuyédelay
    
    if(timer_etat == HIGH)
        actionRelache(); // le bouton est relaché
    else
        actionAppui(actionAppuiTimer(); // le bouton est appuyé
      
    delay(10);
}

void actionAppuiTimer(){

  if (t = 3)
    t = 1;
  else
    t += 1;

}

void actionAppuiStart(){

  if (t = 1)
  digitalWrite(moteurPin,HIGH); // le moteur tourne pendant 5 minutes
  delay(300000);
  digitalWrite(moteurPin,LOW);

  if (t = 2)
  digitalWrite(moteurPin,HIGH); // le moteur tourne pendant 10 minutes
  delay(600000);
  digitalWrite(moteurPin,LOW);
  
  else
  digitalWrite(moteurPin,HIGH); // le moteur tourne pendant 15 minutes
  delay(900000);
  digitalWrite(moteurPin,LOW);

}