Arduino UNO Q - Capteur de Lumière Contrôle une LED

Dans ce guide, vous apprendrez comment :

Capteur de Lumière Arduino UNO Q contrôle une LED

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×Capteur de lumière
1×LED Kit
1×LED (red)
1×LED Module
1×220Ω Resistor
1×10 kΩ Resistor
1×Plaque d'essai
1×Fils de connexion
1×Recommandé: Shield à bornier à vis pour Arduino Uno
1×Recommandé: Sensors/Servo Expansion Shield for Arduino Uno
1×Recommandé: Shield plaque d'essai pour Arduino Uno
1×Recommandé: Boîtier pour Arduino Uno
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

Note d'achat: Pour simplifier le processus de câblage, nous recommandons d'utiliser le LED Module, qui est livré avec une résistance intégrée.

Le capteur de lumière LDR nécessite une résistance pour le câblage. Pour simplifier la configuration, vous pouvez utiliser un module capteur de lumière LDR comme alternative.

À propos de la LED et du Capteur de Lumière

Apprenez-en plus sur les LED et les capteurs de lumière dans les tutoriels ci-dessous :

Schéma de Câblage

Schéma de Câblage Arduino UNO Q Capteur de Lumière LED

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Code MCU

L'Arduino UNO Q dispose de deux processeurs : le MCU STM32 (gère le contrôle matériel en temps réel) et le MPU Qualcomm (exécute Debian Linux). Dans cette section, seul le MCU STM32 est programmé — le côté Linux reste inactif. Une section ultérieure montrera comment les deux processeurs fonctionnent ensemble.

※ Note:

Le MCU STM32 de l'Arduino UNO Q possède un ADC 12 bits (0–4095) avec une référence de 3,3 V. Le seuil dans le code est dimensionné en conséquence par rapport aux cartes Arduino 10 bits (0–1023).

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-light-sensor-controls-led */ #define LIGHT_SENSOR_PIN A0 // The Arduino UNO Q pin connected to the light sensor #define LED_PIN 3 // The Arduino UNO Q pin connected to the LED #define ANALOG_THRESHOLD 200 // Scaled for 12-bit ADC (0-4095) on Arduino UNO Q int analogValue; void setup() { pinMode(LED_PIN, OUTPUT); } void loop() { analogValue = analogRead(LIGHT_SENSOR_PIN); // 0-4095 on Arduino UNO Q (12-bit, 3.3V) if (analogValue < ANALOG_THRESHOLD) digitalWrite(LED_PIN, HIGH); // turn on LED else digitalWrite(LED_PIN, LOW); // turn off LED }

Étapes Rapides

  • Première fois avec Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q pour préparer votre environnement de développement avant de continuer.
  • Câbler les composants : Connectez la photorésistance et la résistance de 10 kΩ (diviseur de tension) à A0. Connectez la LED (avec une résistance de 220 Ω) à la broche 3.
  • Connecter : Branchez l'Arduino UNO Q à votre ordinateur avec un câble USB-C.
  • Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q.
  • Créer une nouvelle application : Cliquez sur le bouton Créer une nouvelle application.
Créer une nouvelle application dans Arduino App Lab sur Arduino UNO Q
  • Donnez un nom à l'application, par exemple : DIYables_LightSensorLED
  • Cliquez sur Créer pour confirmer.
  • Vous verrez un ensemble de dossiers et fichiers générés dans votre nouvelle application.
Dossiers et fichiers de l'application Arduino App Lab sur Arduino UNO Q
  • Trouvez le fichier sketch/sketch.ino — c'est là que vous collerez le sketch MCU.
  • Coller le sketch : Copiez le code MCU ci-dessus et collez-le dans le fichier sketch. Conservez les autres fichiers par défaut.
    • Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
    Add sketch library in Arduino App Lab on Arduino UNO Q
    • Search for Arduino_RouterBridge created by Arduino and click the Install button.
    My Apps / DIYables Apps
    Run
    Bricks
    No bricks added...
    Sketch Libraries
    No sketch libra...
    Files
    python
    sketch
    .gitignore
    README.md
    app.yaml
    sketch.ino
    Add sketch library
    Arduino_RouterBridge Arduino

    This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

    0.4.1
    Install
    More Info
    • Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab pour compiler et téléverser vers le STM32.
    Cliquez sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
    • Tester : Éclairez le capteur avec une lumière vive — la LED s'allume. Couvrez le capteur — la LED s'éteint.

    Programmation Bridge Linux + MCU

    L'Arduino UNO Q dispose de deux processeurs qui fonctionnent ensemble : le MPU (Qualcomm, exécute Debian Linux) et le MCU (STM32, exécute Zephyr OS avec votre sketch Arduino). Ils communiquent via RPC à l'aide de la bibliothèque Arduino_RouterBridge — jamais via des ports série bruts.

    • Le capteur de lumière et la LED sont tous les deux connectés au MCU (STM32) — A0 lit le capteur, la broche 3 pilote la LED.
    • Le MPU ne peut pas contrôler cela directement — il appelle Bridge.call("check_light") sur le MCU, qui lit le capteur et règle la LED en conséquence.
    • Le MPU dispose du Wi-Fi — car le MPU exécute Debian Linux complet avec Wi-Fi, il peut exécuter Telegram et boucler la vérification automatiquement.
    • Communication : Bridge.call() côté Linux invoque Bridge.provide_safe() côté MCU (car digitalWrite() est une API matérielle)
    • ⚠️ Réservé : /dev/ttyHS1 (Linux) et Serial1 (MCU) sont utilisés par l'Arduino Router — ne les ouvrez jamais directement

    En résumé : Python appelle check → MCU lit le capteur → MCU règle la LED et affiche dans le Moniteur.

    Sketch MCU — contrôle LED par capteur de lumière avec Bridge et sortie Moniteur :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-light-sensor-controls-led */ #include "Arduino_RouterBridge.h" #define LIGHT_SENSOR_PIN A0 #define LED_PIN 3 #define ANALOG_THRESHOLD 200 void check_light() { int value = analogRead(LIGHT_SENSOR_PIN); bool led_on = value < ANALOG_THRESHOLD; digitalWrite(LED_PIN, led_on ? HIGH : LOW); Monitor.print("Sensor: "); Monitor.print(value); Monitor.print(" -> LED: "); Monitor.println(led_on ? "ON" : "OFF"); } void setup() { Bridge.begin(); Monitor.begin(); pinMode(LED_PIN, OUTPUT); digitalWrite(LED_PIN, LOW); Bridge.provide_safe("check_light", check_light); Monitor.println("Light Sensor LED Bridge ready"); } void loop() {}

    Script Python (Arduino App Lab) — exécuter la boucle de vérification de lumière depuis Linux :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-light-sensor-controls-led */ from arduino.app_utils import * import time def loop(): Bridge.call("check_light") time.sleep(0.5) App.run(user_loop=loop)
    • Remarque : Assurez-vous que Bridge.begin() est appelé dans le sketch MCU et que le sketch est téléversé avant d'exécuter le script Python côté Linux.
    • ⚠️ Avertissement : N'ouvrez jamais directement /dev/ttyHS1 (sous Linux) ni n'utilisez Serial1 (sur MCU) dans votre code — ceux-ci sont réservés par l'Arduino Router et y accéder cassera le Bridge.

    Étapes Rapides

    • Téléverser le sketch MCU : Ouvrez Arduino App Lab, créez une nouvelle application, collez le sketch MCU Bridge dans sketch/sketch.ino, installez la bibliothèque Arduino_RouterBridge, puis cliquez sur Exécuter.
    • Ajouter le script Python : Collez le code Python ci-dessus dans l'onglet Python de la même application.
    • Exécuter l'application : Cliquez sur Exécuter — Python appelle check_light toutes les 500 ms ; le MCU lit le capteur et contrôle la LED.
    • Vérifier la console : Ouvrez l'onglet Console → sous-onglet Moniteur MCU pour voir les valeurs du capteur et l'état de la LED.

    Sortie Console App Lab

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    Message (Enter to send a message to "Newbiely" on usb(2820070321))
    New Line
    9600 baud
    Light Sensor LED Bridge ready Sensor: 145 -> LED: ON Sensor: 152 -> LED: ON Sensor: 890 -> LED: OFF Sensor: 3210 -> LED: OFF Sensor: 48 -> LED: ON

    Intégration Telegram

    Surveillez le capteur de lumière et l'état de la LED à distance via Telegram.

    Si vous n'avez pas encore de bot Telegram, consultez Arduino UNO Q - Bot Telegram pour obtenir votre token de bot avant de continuer.

    Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente — aucune modification nécessaire. Assurez-vous qu'il est déjà téléversé et en cours d'exécution sur le STM32 avant de continuer.

    Script Python (Arduino App Lab) — bot Telegram pour la surveillance LED par capteur de lumière :

    /* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-light-sensor-controls-led */ from arduino.app_utils import * import requests import time BOT_TOKEN = "YOUR_BOT_TOKEN" API_URL = f"https://api.telegram.org/bot{BOT_TOKEN}" last_update_id = 0 def send_message(chat_id, text): requests.post(f"{API_URL}/sendMessage", json={"chat_id": chat_id, "text": text}) def get_updates(): global last_update_id resp = requests.get(f"{API_URL}/getUpdates", params={"offset": last_update_id + 1, "timeout": 5}) return resp.json().get("result", []) def loop(): global last_update_id Bridge.call("check_light") # continuously control LED based on light updates = get_updates() for update in updates: last_update_id = update["update_id"] msg = update.get("message", {}) chat_id = msg.get("chat", {}).get("id") text = msg.get("text", "").strip() if text == "/read": status = Bridge.call("check_light") send_message(chat_id, status) else: send_message(chat_id, "Commands:\n/read — check light sensor value and LED state") time.sleep(0.5) App.run(user_loop=loop)
    • Remarque : Remplacez YOUR_BOT_TOKEN par le token obtenu depuis @BotFather sur Telegram.
    • Le bot vérifie en continu le capteur de lumière et contrôle la LED tout en écoutant les commandes Telegram.
    • Envoyez /read pour demander une confirmation que le statut a été enregistré dans le Moniteur MCU.

    Étapes Rapides

    • Téléverser le sketch MCU : Utilisez le sketch MCU Bridge de la section précédente (téléversez-le d'abord si ce n'est pas déjà fait).
    • Coller le script Telegram : Copiez le code Python ci-dessus dans l'onglet Python de votre application dans Arduino App Lab.
    • Définir votre token : Remplacez YOUR_BOT_TOKEN dans le script par votre vrai token de bot.
    • Exécuter l'application : Cliquez sur Exécuter — le bot commence à contrôler la LED et à écouter les messages Telegram.
    • Tester : Envoyez /read — le bot répond avec la valeur actuelle du capteur et l'état de la LED.

    Sortie Console App Lab

    DIYables_Apps
    Stop
    sketch.ino
    1#include "Arduino_RouterBridge.h"
    Serial Monitor
    Python
    [2026-04-29 12:00:01] Telegram: /read [2026-04-29 12:00:01] Sensor: 150 -> LED: ON
    Telegram
    Telegram 12:45
    Welcome to Telegram!
    ArduinoBot 10:19
    Chatting with Arduino...
    telegram-botfather
    BotFather Yesterday
    Your bot has been created.

    ArduinoBot

    bot
    Today
    /read
    10:15 AM ✓✓
    Sensor: 150 -> LED: ON
    10:16 AM

    Intégration d'OpenClaw

    Vous pouvez adapter OpenClaw à ce tutoriel en vous référant aux instructions du tutoriel Arduino UNO Q - OpenClaw.

    Idées d'Applications/Projets

    • Lampe de bureau automatique : Allumer une LED (ou un ruban LED via relais) lorsque la lumière ambiante tombe en dessous d'un seuil
    • Contrôle du rétroéclairage d'affichage : Atténuer ou augmenter la luminosité d'un affichage en fonction des niveaux de lumière environnants
    • Lumière d'aquarium intelligente : Allumer automatiquement l'éclairage d'aquarium au coucher du soleil et l'éteindre au lever du soleil
    • Indicateur de mode nuit : Utiliser une LED pour signaler qu'il fait suffisamment sombre pour le mode basse consommation
    • Complément lumineux pour serre : Ajouter un éclairage LED de croissance supplémentaire lorsque la lumière naturelle est insuffisante

    Challengez-vous

    • Facile : Ajustez la valeur ANALOG_THRESHOLD pour que la LED s'allume au crépuscule plutôt qu'en pleine lumière
    • Intermédiaire : Envoyez une alerte Telegram lorsque la LED s'allume ou s'éteint (notification d'événement de changement de lumière)
    • Avancé : Implémentez une bande d'hystérésis (par exemple, allumer en dessous de 150, éteindre au-dessus de 300) pour éviter les scintillements rapides au seuil

    Références des Fonctions

    ※ NOS MESSAGES

    • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !