Moteur à vibration

int moteur_vibration = 12; // Broche du moteur a virabtion
void setup() {
pinMode(moteur_vibration, OUTPUT ); // On met la broche du moteur en sortie
}
void loop(){
digitalWrite(moteur_vibration, HIGH); //On allume le moteur
delay(1000); // On fait une pause d'une seconde
digitalWrite(moteur_vibration, LOW); // On éteint le moteur
delay(1000);
}
Capteur de temperature DHT11
// Capteur de temperature et d'humidite DHT11
// https://tutoduino.fr/
// Copyleft 2020
#include "DHT.h"
// Definit la broche de l'Arduino sur laquelle la
// broche DATA du capteur est reliee
#define DHTPIN 2
// Definit le type de capteur utilise
#define DHTTYPE DHT11
// Declare un objet de type DHT
// Il faut passer en parametre du constructeur
// de l'objet la broche et le type de capteur
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
// Initialise la capteur DHT11
dht.begin();
}
void loop() {
// Recupere la temperature et l'humidite du capteur et l'affiche
// sur le moniteur serie
Serial.println("Temperature = " + String(dht.readTemperature())+" °C");
Serial.println("Humidite = " + String(dht.readHumidity())+" %");
// Attend 10 secondes avant de reboucler
delay(10000);
}
Contrôler la puissance de lampe en fonction de la temperature

#include <DHT.h>
#define DHTPIN 2
#define DHTTYPE DHT11
#define LEDPIN 9
DHT dht(DHTPIN, DHTTYPE);
float currentBrightness = 0.0; // 0~255
float smoothing = 0.1; // 0.0(빠름) ~ 1.0(느림)
int gammaCorrect(int v) {
float g = 2.2; // 감마값 (사람 눈에 적당)
float norm = v / 255.0;
int out = int(pow(norm, g) * 255.0 + 0.5);
return constrain(out, 0, 255);
}
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(LEDPIN, OUTPUT);
}
void loop() {
float t = dht.readTemperature();
if (isnan(t)) return;
// 온도 → 0~255 매핑 (원하는 범위로 조정)
float minT = 25.0, maxT = 30.0;
// 사람 손일 경우 온도 범위를 5도 정도로 해야 램프의 밝기 변화가 눈에 보임
int target = map(constrain((int)(t*10), (int)(minT*10), (int)(maxT*10)),
(int)(minT*10), (int)(maxT*10), 0, 255);
// 감마 보정 적용
int gammaVal = gammaCorrect(target);
// 부드럽게 변화 (exponential smoothing)
currentBrightness = currentBrightness * (1.0 - smoothing) + gammaVal * smoothing;
analogWrite(LEDPIN, (int)currentBrightness);
Serial.print("T:");
Serial.print(t);
Serial.print(" target:");
Serial.print(target);
Serial.print(" gamma:");
Serial.println((int)currentBrightness);
delay(200);
}
Contrôler la puissance de vibration en fonction de la temperature
#include "DHT.h"
#define DHTPIN 2 // DHT11 DATA 핀
#define DHTTYPE DHT11
#define MOTOR_PIN 9 // 진동 모터 PWM 핀
DHT dht(DHTPIN, DHTTYPE);
void setup() {
pinMode(MOTOR_PIN, OUTPUT);
Serial.begin(9600);
dht.begin();
}
void loop() {
float temp = dht.readTemperature(); // 섭씨 온도 읽기
if (isnan(temp)) { // 센서 오류 처리
Serial.println("DHT11 read error");
delay(1000);
return;
}
// 온도 -> 진동 세기(25~30도 범위 매핑)
int motorPower = map(temp, 25, 30, 50, 120); // 25도=50, 30도=120
motorPower = constrain(motorPower, 50, 120); // 최소/최대 범위 제한
// 모터에 PWM 출력 (연속 진동)
analogWrite(MOTOR_PIN, motorPower);
// 디버그 출력
Serial.print("Temp: "); Serial.print(temp);
Serial.print(" C | PWM: "); Serial.println(motorPower);
delay(200); // 센서 읽기 간격
}
Utiliser le moteur courant pour créer un mouvement de tige aluminium

Contrôler la vitesse de moteur DC par le controlleur

MoteurDC/ rouge-30e, noir-9h
Controlleur-derniers a/ rouge-30b 5v, orange-29e A0, noir-26c GND droite
Petit outil noir-8 9 10 f/ vert-10j ~9, rouge-8j GND gauche
10K-10g 15h
Un cable noir-15f, GND gauche
Arduino/file/example/servo/Knob
*Val = map(val, 0, 1023, 0, 255) ;
Esquisse

premier esquisse-moteur de vibration ne marche pas pour onduler un papier ou un tissu-commencer à utiliser un moteur couratnt avec un potentiomètre-la partie en tissu devrais changer en petit tige métal très fin
Pour allumer le moteur courant, il suifit de connecter les cables comme l’explication sur le site indiqué. Premièrement il faut tester l’effect visuel en tige aluminium. Et dans la deuxième partie, il faudrais trouver un moyen pour controller ce moteur en fonction des infos par le capteur de température.
Imprssion 3D


#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
int motor = 9;
DHT dht(DHTPIN, DHTTYPE);
void setup() {
pinMode(motor, OUTPUT);
Serial.begin(9600);
dht.begin();
}
void loop() {
int temperature = dht.readTemperature();
int valeurMotor = map (temperature, 0, 40, 0, 255);
analogWrite(motor, valeurMotor);
Serial.println("Temperature = " + String(dht.readTemperature())+" °C");
Serial.println("Humidite = " + String(dht.readHumidity())+" %");
Serial.println(temperature);
Serial.println(valeurMotor);
// Attend 10 secondes avant de reboucler
delay(5000);
}
Controler la vitesse de moteur par la température
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
int motor = 9;
DHT dht(DHTPIN, DHTTYPE);
void setup() {
pinMode(motor, OUTPUT);
Serial.begin(9600);
dht.begin();
}
void loop() {
int temperature = dht.readTemperature();
int valeurMotor = map (temperature, 0, 40, 0, 255);
analogWrite(motor, valeurMotor);
Serial.println("Temperature = " + String(dht.readTemperature())+" °C");
Serial.println("Humidite = " + String(dht.readHumidity())+" %");
Serial.println(temperature);
Serial.println(valeurMotor);
// Attend 10 secondes avant de reboucler
delay(5000);
}