This computer science problem involves algorithmic thinking and programming concepts. The solution below explains the approach, logic, and implementation step by step.

ScanSolve AI Answer
Welcome back kengstanley86 — been a while! Let's pick up where you left off.
7. i) a) La fonction du convertisseur analogique-numérique (CAN ou ADC) dans l'Arduino UNO est de transformer un signal de tension analogique (continu) provenant du capteur en une valeur numérique discrète que le microcontrôleur peut lire et traiter.
b) Le type de système de contrôle implémenté est un système de contrôle en boucle fermée. La raison est que la sortie du système (le niveau d'eau, qui est affecté par la pompe) est mesurée par le capteur et cette information est renvoyée à l'Arduino pour ajuster l'action de la pompe, créant ainsi une boucle de rétroaction.
c) L'Arduino UNO utilise le signal analogique pour contrôler la pompe de la manière suivante : • Le capteur de niveau d'eau produit une tension analogique proportionnelle au niveau d'eau, qui est envoyée à une broche d'entrée analogique de l'Arduino (A0). • Le CAN interne de l'Arduino convertit cette tension analogique en une valeur numérique. • L'Arduino compare cette valeur numérique lue avec un point de consigne prédéfini (600). • Si la valeur lue est inférieure à 600, l'Arduino envoie un signal numérique HIGH à la broche de sortie (pin 9) pour activer la pompe. Si la valeur est égale ou supérieure à 600, il envoie un signal LOW pour désactiver la pompe.
ii) Voici le programme Arduino :
$$
\begin{align*}
&const int waterSensorPin = A0;\\
&const int pumpPin = 9;\\
&const int setpointADC = 600;\\
\\
&void setup() \{\\
&\quad pinMode(pumpPin, OUTPUT);\\
&\quad Serial.begin(9600); // Pour le débogage, facultatif\\
&\}\\
\\
&void loop() \{\\
&\quad int adcReading = analogRead(waterSensorPin);\\
&\quad Serial.print("ADC Reading: "); // Pour le débogage, facultatif\\
&\quad Serial.println(adcReading); // Pour le débogage, facultatif\\
\\
&\quad if (adcReading < setpointADC) \{\\
&\quad \quad digitalWrite(pumpPin, HIGH); // Allumer la pompe\\
&\quad \quad Serial.println("Pump ON"); // Pour le débogage, facultatif\\
&\quad \}\\
&\quad else \{\\
&\quad \quad digitalWrite(pumpPin, LOW); // Éteindre la pompe\\
&\quad \quad Serial.println("Pump OFF"); // Pour le débogage, facultatif\\
&\quad \}\\
&\quad delay(1000); // Attendre 1 seconde avant la prochaine lecture\\
&\}\\
\end{align*}
$$
Drop the next question 📸
Get instant step-by-step solutions to any question. Free to start.
Ask Your QuestionStill have questions?
This computer science problem involves algorithmic thinking and programming concepts. The solution below explains the approach, logic, and implementation step by step.