Sélectionnez une valeur dans un éventail de choix (unsigned)

Bonjour au forum Arduino!

Étant novice complet sur Arduino j'ai besoin de votre aide svp..

Le but de mon Arduino en gros, c'est que mon capteur de température (prend la température obvious haha) mais que mon programme face la différence entre cette valeur et la valeur souhaité par l'utilisateur.. (déjà je sais pas où/comment saisir cette valeur souhaité (exemple 20°C alors qu'il fait 25°C donc 5 de différence), il doit la saisir sur le moniteur série ?)

J'ai cru comprendre qu'il fallait faire un unsigned? (Pour faire un tableau de valeur, exemple pour 5°C de moins voulu j'ai calculer son value pour le pwm 78 et donc son V 1,83V) Mais j'ai pas compris comment écrire cette ligne de code?

Voilà merci de votre future aide, et je vous remercie pour la lecture!

https://image.noelshack.com/fichiers/2018/15/5/1523601875-img-20180409-093607.jpg

Voici ce que j'ai fait pour le moment,, si vous avez des questions n'hésitez pas, personnellement, je suis perdu niveau code..

Plop

Alors si tu pouvais mettre ton code entre balises ...
Parce que là, moi, je vois une ligne avec un unsigned tout seul, et une variable valeur qui apparaît comme ça...

Le but c'est de faire tourner un moteur proportionnellement à un écart de t° entre celle captée et celle voulue? comme dans une couveuse?

Shadrak:
je sais pas où/comment saisir cette valeur souhaité (exemple 20°C alors qu'il fait 25°C donc 5 de différence), il doit la saisir sur le moniteur série ?

La valeur de consigne peut être

  • programmée en dur dans le code (et n'est alors plus modifiable une fois compilé),
  • rentrée par le serial monitor (mais il faut une liaison avec le PC) ,
  • incrémentée/décrémentée avec 2 boutons poussoirs, ou un encodeur rotatif... dans ce cas il faut prévoir un afficheur (2x 7segments, petit LCD...)

kammo:
Plop

Alors si tu pouvais mettre ton code entre balises ...
Parce que là, moi, je vois une ligne avec un unsigned tout seul, et une variable valeur qui apparaît comme ça...

Le but c'est de faire tourner un moteur proportionnellement à un écart de t° entre celle captée et celle voulue? comme dans une couveuse?

Je voulais le mettre depuis mon téléphone, mais à chaque fois il y avait une erreur du coup j'ai opté pour la photo :confused:

Voila le code:

int pinMoteur=3; //pin de commande relié au transistor

void setup() {
  Serial.begin(9600); // Initialise la communication avec le PC
  pinMode(pinMoteur,OUTPUT); // pin de commande en mode sortie
}

void loop() {
  int valeur_brute = analogRead(A0); // Mesure la tension sur la broche A0
  float temperature_celcius = valeur_brute * (5.0 * 100.0 / 1023.0); // Transforme la mesure (nombre entier) en température via un produit en croix
  
  unsigned char 
    analogWrite(pinMoteur,valeur); // pin de commande en mode impulsion
    delay (3000); // attente de 3 secondes
  }
}

Désolé c'est vrai j'ai pas du tout préciser, en fait mon objet est un ventilateur..
J'ai déjà fait les mesures par exemple, pour baisser de 5°C, il faut que je fasse tourné le moteur à 2,2ms et donc à une tension de 1,83V donc en PWM à 78 (sur 255 car la valeur max=6v)

Moi mon but, c'est de mettre tout les valeurs de PWM (qui sert de valeur pour faire tourner le moteur) par degré que j 'ai calculé avec unsigned(je l'ai pas fait car je sais pas du tout comment m'y prendre?)

Je ne sais pas quel prendre quel unsigned non plus

Christian_R:
La valeur de consigne peut être

  • programmée en dur dans le code (et n'est alors plus modifiable une fois compilé),
  • rentrée par le serial monitor (mais il faut une liaison avec le PC) ,
  • incrémentée/décrémentée avec 2 boutons poussoirs, ou un encodeur rotatif... dans ce cas il faut prévoir un afficheur (2x 7segments, petit LCD...)

Je veux faire par serial monitor(car je veux que le programme choisisse dans les valeurs que j'ai entrer) mais je sais pas du tout comment faire..

(0,3;1,10;2,25;3,35;4,56;5,78;6,106;7,159;8,230;)

exemple 0°C=a la valeur en PWM 3
4°C=56 en PWM

et avant ça il faut qu'après avoir mis la valeur voulu exemple 20°C, alors qu'il fait 25°C ce qui fait 5°C de différence, je sais pas comment l'ordonner ça..

Et bien sûr, encore merci d'avoir pris soin de répondre à ce topic merci

Salut
J'ai repensé à ce projet ce matin.
J'aurais surement fait comme toi, relever la vitesse et la température, et mettre ça dans un tableau. On appelle la valeur vitesse du tableau en fonction de la température.
Soit.
Mais j'aurais fait ça parce que je suis une quiche en maths, et je pense que j'aurais fini par prendre du papier, une règle, et tracer y=ax+b, c'est le seul truc dont je me souvienne en maths.
Une fois la courbe tracée, tu as l'équation, et tout devient proportionnel, c'est beau.
A partir de ça, j'aurais mis tout le monde dans un map, ce qui aurait fait tourner mon ventilo proportionnellement à la valeur recueillie par mon capteur.
Ca évite de bosser sur les tableaux, ca optimise la consommation électrique, ca prend une ligne de code, c'est fiable, élégant.

Si je reviens me mêler de ça c'est que je suis débutant. Un vrai noob pur sang. Mais j'apprends.
J'aurais fait exactement comme toi il y a un mois.
Aujourd'hui, j'utiliserais un map.