# Programas básicos con Smart Agriculture Kit

# OLED

> Un OLED (Organic light-emitting diode) es un tipo de LED en el que la capa emisiva es está formada por un compuesto orgánico que emite luz en respuesta a la electricidad...  
> ...Las pantallas OLED tienen la ventaja de tener un consumo muy bajo, en torno a 20mA, dado que solo se enciende el pixel necesario y no requieren de backlight. Esto es especialmente interesante en aplicaciones que funcionan con baterías. Además, tienen una mejor visibilidad en ambientes luminosos, como bajo el sol. Aunque el pequeño tamaño de estas pantallas OLED de 0.96” pueden ser un problema para su correcta visualización.  
> Luis Llamas CC-BY-NC-SA [https://www.luisllamas.es/conectar-arduino-a-una-pantalla-oled-de-0-96/](https://www.luisllamas.es/conectar-arduino-a-una-pantalla-oled-de-0-96/)

La pantalla OLED nos permitirá visualizar variables y mensajes muy fácilmente :

Para tener las instrucciones OLED instalaremos la extensión de ELECFREAKS

[![2026-02-06 18_06_21-Greenshot image editor.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-18-06-21-greenshot-image-editor.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-18-06-21-greenshot-image-editor.png)

E instala estas instrucciones

[![2026-02-08 00_24_01-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-00-24-01-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-00-24-01-whatsapp.png)

En este programa visualiza el nivel de luz (el sensor esta integrado en la placa microbit) en el OLED:

1. Inicializa la pantalla OLED como 128x64 pixeles
2. limpia de anteriores mensajes
3. Enseña la frase (con salto de línea)
4. Enseña frase sin salto de línea
5. Enseña número con salto de línea

[![2026-02-07 23_46_39-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-23-46-39-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-23-46-39-greenshot.png)

El resultado:

[![2026-02-07 23_48_52-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-23-48-52-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-23-48-52-whatsapp.png)

[https://makecode.microbit.org/S69148-73800-11713-89082](https://makecode.microbit.org/S69148-73800-11713-89082)

<div id="bkmrk--4" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S69148-73800-11713-89082" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>

# DHT11

La lectura de este sensor que es doble, lleva un protocolo que lo hemos visto en el apartado de **sensores** por lo que utilizaremos alguna función definida de alguna extensión.

La extensión recomendada es la que instala el fabricante ELECFREAKS en la extensión Environment

[![2026-02-06 18_06_21-Greenshot image editor.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-18-06-21-greenshot-image-editor.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-18-06-21-greenshot-image-editor.png)

La instrucción esta un poco escondida

[![2026-02-07 22_11_14-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-22-11-14-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-22-11-14-greenshot.png)

Para ver su funcionamiento, vamos a visualizar su valor en la pantalla OLED :

[![2026-02-07 22_13_43-Greenshot.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-22-13-43-greenshot.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-22-13-43-greenshot.png)

[https://makecode.microbit.org/S31229-07212-54331-00904](https://makecode.microbit.org/S31229-07212-54331-00904)

<div id="bkmrk--3" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S31229-07212-54331-00904" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>El resultado

[![2026-02-07 22_16_10-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-07-22-16-10-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-07-22-16-10-whatsapp.png)

# Sonda sumergible DS18B20

> El sensor DS18B20 es un sensor barato y, sin embargo, bastante avanzado. Dispone de un rango amplio de medición de -55ºC a +125ºC y una precisión superior a ±0.5°C en el rango –10°C de +85°C.  
> Una de las ventajas del DS18B20 es que se comercializa tanto en un integrado TO-92 como en forma de sonda impermeable, lo que permite realizar mediciones de temperatura en líquidos y gases.
> 
> *Luis LLamas CC-BY-NC-SA [https://www.luisllamas.es/temperatura-liquidos-arduino-ds18b20/](https://www.luisllamas.es/temperatura-liquidos-arduino-ds18b20/)*

Esto nos permite hacer mediciones en agua incluso hirviendo.

Recomendamos usar una extensión específica para esta sonda, buscar como DS TEMP

[![2026-02-08 00_08_57-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-00-08-57-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-00-08-57-whatsapp.png)

Esto nos instala estas dos instrucciones:

[![2026-02-08 00_11_14-C__Users_HP_Downloads_2026-02-08 00_08_57-WhatsApp.png - Greenshot image editor.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-00-11-14-c-users-hp-downloads-2026-02-08-00-08-57-whatsapp-png-greenshot-image-editor.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-00-11-14-c-users-hp-downloads-2026-02-08-00-08-57-whatsapp-png-greenshot-image-editor.png)

El siguiente programa:

1. Prepara OLED
2. Esta rutina permite visualizar por el OLED si hay algún error
3. Grabamos en la variable TEMPERATURA el valor que lee la sonda en el P1
4. Visualizamos el valor

[![2026-02-08 00_18_11-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-00-18-11-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-00-18-11-whatsapp.png)

[https://makecode.microbit.org/S42317-53460-45843-40235](https://makecode.microbit.org/S42317-53460-45843-40235)

<div id="bkmrk--3" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S42317-53460-45843-40235" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>  
  
Aquí podemos ver que marca cerca de 90ºC en una infusión:

[![2026-02-08 00_18_55-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-00-18-55-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-00-18-55-whatsapp.png)

# Servo

Nos da mucho juego y permite muchos proyectos. El fabricante sólo proporciona uno 😢 ¡¡¡ que sólo cuesta [2€](https://www.turibot.es/mini-servo-para-rc) !!

Para utilizarlo **no hace falta ninguna extensión** en pines tenemos las instrucciones correspondientes

Vamos a hacer un programa para que veas **que sólo puede girar de 0º a 180º**

1. Creamos una variable **angulo** y al principio le asignamos el valor de 0 por lo tanto obligamos que empiece con ese valor
2. Fijamos el ángulo del servo que esta en el pin P9 al valor de la variable ángulo dentro del bucle para siempre. Una pausa breve de ms **que podemos bajar si queremos que vaya más rápido**
3. si la variable ángulo supera los 180 que vuelva a "resetearse" a 0
4. la variable ángulo se va incrementando de 10 en 10 con otra pausa. Estos valores se pueden cambiar para conseguir la velocidad deseada

[![2026-02-08 10_41_35-C__Users_HP_Downloads_2026-02-08 10_25_18-WhatsApp.png - Greenshot image editor.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-10-41-35-c-users-hp-downloads-2026-02-08-10-25-18-whatsapp-png-greenshot-image-editor.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-10-41-35-c-users-hp-downloads-2026-02-08-10-25-18-whatsapp-png-greenshot-image-editor.png)

[https://makecode.microbit.org/S99415-22198-23132-97526](https://makecode.microbit.org/S99415-22198-23132-97526)

<div id="bkmrk--1" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S99415-22198-23132-97526" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div><p class="callout info">**RETO:** Crear un programa que alimente automáticamente a los animales, mediante una programación semanal, es decir dado una fecha, que se active el servo que abrirá la compuerta del silo durante un tiempo determinado. **[Solución](https://www.elecfreaks.com/learn-en/microbitKit/smart_agriculture_kit/microbit-Smart-Agriculture-Kit-case-11.html)**</p>

<p class="callout info">**RETO**: Crear un programa que proteja las plantas de la luz directa, es decir si la luz es mayor que un cierto valor, se acive el servo que pondrá una sombra a la planta. [Solución](https://www.elecfreaks.com/learn-en/microbitKit/smart_agriculture_kit/microbit-Smart-Agriculture-Kit-case-09.html)</p>

# Sensor de agua

> Este tipo de sensores **detectan la presencia de lluvia por la variación de conductividad** del sensor al entrar en contacto con el agua. *Luis Llamas CC-BY-NC-SA [https://www.luisllamas.es/arduino-lluvia/](https://www.luisllamas.es/arduino-lluvia/)*

Para este sensor **no utilizaremos ningúna extensión especial,** la instrucción **lectura de pin analógico** correspondiente es suficiente y fiable, no tiene protocolo de datos como los otros sensores :

1. Inicializamos el OLED
2. Grabamos en una variable nueva AGUA el valor del pin analógico P2
3. Visualizamos la lectura

[![2026-02-08 00_29_18-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-00-29-18-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-00-29-18-whatsapp.png)

[https://makecode.microbit.org/S42209-00876-15805-47351](https://makecode.microbit.org/S42209-00876-15805-47351)

<div id="bkmrk--1" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S42209-00876-15805-47351" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>Aquí vemos el resultado

[![2026-02-08 00_35_39-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-00-35-39-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-00-35-39-whatsapp.png)

<p class="callout success">**RETO: VISUALIZALO EN FORMA DE TANTO POR CIEN:**  
La variable analógica va de 0 a 1024 si quieres que visualice valores de 0 a 100 tienes que "mapear" o "cambio de variable" una forma de hacerlo es con la instrucción. (también hay otra de mapear en "Pines").  
O de forma casera, con una regla de 3, es decir multiplicarlo por 100/1024  
[![2026-02-08 00_38_34-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-00-38-34-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-00-38-34-whatsapp.png)</p>

# Humedad del suelo

> {{@7009#bkmrk-un-higr%C3%B3metro-de-sue}}

Te proponemos este sencillo programa para poder calibrar y medir las humedades del suelo :

1. Inicializamos el OLED
2. Grabamos en una variable la lectura del pin P4
3. Visualizamos en el OLED la lectura

{{@14095#bkmrk-para-este-sensor%C2%A0no-}}

[![2026-02-08 10_05_17-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-10-05-17-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-10-05-17-whatsapp.png)

[https://makecode.microbit.org/S85526-52667-76006-02288](https://makecode.microbit.org/S85526-52667-76006-02288)

<div id="bkmrk--1" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S85526-52667-76006-02288" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>  
[![2026-02-08 10_08_19-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-10-08-19-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-10-08-19-whatsapp.png)

<p class="callout success">{{@14095#bkmrk-reto%3A-visualizalo-en}}</p>

**RETO**: Este sensor junto con el servo pide a gritos un proyecto de riego automático: ¿Te atreves?

<iframe allowfullscreen="allowfullscreen" height="314" src="https://www.youtube.com/embed/xm27jGEysfI" width="560"></iframe>

# Led Neopixel

Los leds Neopixels son "chulos" cuando hay muchos, pues los datos van pasando de un led a otro y tiene mucho juego pero en este caso el fabricante sólo ha puesto uno 😢

> {{@11506#bkmrk-los-ws2811%2C-ws2812-y}}

<p class="callout warning">Para utilizar este elemento tenemos que descargarnos la Extensión Neopixel y tendremos las instrucciones adecuadas.</p>

**Vamos a hacer UNA LUZ CREPUSCULAR PARA LA GRANJA es decir que cuando sea de noche se encienda la luz**

1. Inicializamos el led neopixel en el pin P14 con 1 led y formato GRB (se refiere al orden de envío de las instrucciones, primero el green, luego red y luego blue, hay otro formato que es más común el RGB)
2. Si la luz ambiental (detectado por el sensor integrado en la placa micro:bit) es menor que 50 (un valor arbitrario para detectar si es de noche o es de día)
3. Apaga la luz si es de día
4. Enciende la luz si es de noche

[![2026-02-08 10_25_18-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-10-25-18-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-10-25-18-whatsapp.png)

[https://makecode.microbit.org/S47979-61604-21560-37629](https://makecode.microbit.org/S47979-61604-21560-37629)

<div id="bkmrk--1" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S47979-61604-21560-37629" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>

# Sensor de movimiento PIR

> {{@7009#bkmrk-los-sensores-infrarr}}

{{@14095#bkmrk-para-este-sensor%C2%A0no-}}

Vamos a hacer una alarma sencilla:

1. Inicializamos el OLED
2. Si la lectura del sensor es mayor que 100 (valor arbitrario) es que hay "alguien"
3. Si hay alguien 
    1. lo visualizo por el OLED
    2. sale la palabra INTRUSO
    3. y reproduce un tono de alarma
4. Si no hay nadie 
    1. sale el valor por el OLED
    2. sale que no hay nadie
5. una breve pausa para no saturar la placa

[![2026-02-08 10_53_55-C__Users_HP_Downloads_2026-02-08 10_25_18-WhatsApp.png - Greenshot image editor.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-10-53-55-c-users-hp-downloads-2026-02-08-10-25-18-whatsapp-png-greenshot-image-editor.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-10-53-55-c-users-hp-downloads-2026-02-08-10-25-18-whatsapp-png-greenshot-image-editor.png)

<p class="callout success">**PROPUESTA: Ajusta el valor arbitrario del paso 2 para que detecte personas pero no animales**</p>

**[https://makecode.microbit.org/S47327-01515-95700-67184](https://makecode.microbit.org/S47327-01515-95700-67184)**

<div id="bkmrk--1" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S47327-01515-95700-67184" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>{{@14095#bkmrk-reto%3A-visualizalo-en}}

# Sensor distancia de ultrasonidos

##### <span style="color: rgb(22, 145, 121);">**Hardware**</span>

{{@7009#bkmrk-es-un-sensor-de-dist}}

##### <span style="color: rgb(22, 145, 121);">**Software**</span>

La extensión recomendada es la que instala el fabricante ELECFREAKS en la extensión Environment

[![2026-02-06 18_06_21-Greenshot image editor.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-06-18-06-21-greenshot-image-editor.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-06-18-06-21-greenshot-image-editor.png)

Y en una sección que pone Octopus

[![2026-02-08 11_07_48-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-11-07-48-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-11-07-48-whatsapp.png)

Vamos a hacer un programa que visualice las mediciones:

1. Preparamos la OLED
2. En una variable nueva DISTANCIA recoge la medida del sensor que está conectado en el pin P13
3. visualiza la DISTANCIA en el OLED

[![2026-02-08 11_08_48-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-11-08-48-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-11-08-48-whatsapp.png)

[https://makecode.microbit.org/S66928-56344-60970-73771](https://makecode.microbit.org/S66928-56344-60970-73771)

<div id="bkmrk--3" style="position: relative; height: 0; padding-bottom: 70%; overflow: hidden;"><iframe frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" src="https://makecode.microbit.org/#pub:S66928-56344-60970-73771" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe>

</div>En la foto me he colocado a aproximadamente 11cm de los "ojos"

[![2026-02-08 11_11_43-WhatsApp.png](https://libros.catedu.es/uploads/images/gallery/2026-02/scaled-1680-/2026-02-08-11-11-43-whatsapp.png)](https://libros.catedu.es/uploads/images/gallery/2026-02/2026-02-08-11-11-43-whatsapp.png)