.. note:: ¡Hola! Bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook. Sumérgete en el mundo de Raspberry Pi, Arduino y ESP32 con otros entusiastas. **¿Por qué unirse?** - **Soporte experto**: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo. - **Aprende y comparte**: Intercambia consejos y tutoriales para mejorar tus habilidades. - **Avances exclusivos**: Obtén acceso anticipado a nuevos anuncios de productos y adelantos. - **Descuentos especiales**: Disfruta de descuentos exclusivos en nuestros productos más recientes. - **Promociones festivas y sorteos**: Participa en sorteos y promociones festivas. 👉 ¿Listo para explorar y crear con nosotros? Haz clic en [|link_sf_facebook|] y únete hoy mismo! .. _clickable_dot: Punto Clickeable ======================= Hemos intentado dibujar gráficos en movimiento, responder a eventos del ratón y controlar un LED. Entonces, podríamos combinar estas funciones, dibujar un punto clickeable, ¡para controlar el LED! .. image:: img/clickable_dot_on.png **Componentes Necesarios** En este proyecto, necesitamos los siguientes componentes. Es definitivamente conveniente comprar un kit completo, aquí está el enlace: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Nombre - ELEMENTOS EN ESTE KIT - ENLACE * - Raphael Kit - 337 - |link_Raphael_kit| También puedes comprarlos por separado en los enlaces a continuación. .. list-table:: :widths: 30 20 :header-rows: 1 * - INTRODUCCIÓN AL COMPONENTE - ENLACE DE COMPRA * - :ref:`cpn_gpio_board` - |link_gpio_board_buy| * - :ref:`cpn_breadboard` - |link_breadboard_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_led` - |link_led_buy| **Conexiones** .. image:: img/image49.png **Sketch** .. code-block:: arduino import processing.io.*; boolean state = false; int ledPin = 17; void setup() { GPIO.pinMode(ledPin, GPIO.OUTPUT); background(255); } void draw() { if (state == true) { GPIO.digitalWrite(ledPin, GPIO.LOW); fill(255, 0, 0); }else { GPIO.digitalWrite(ledPin, GPIO.HIGH); fill(155); } ellipse(width/2, height/2, width*0.75, height*0.75); } void mouseClicked() { // toggles state: if (2*dist(mouseX,mouseY,width/2, height/2)<=width*0.75) {state = !state;} } **¿Cómo funciona?** Este proyecto tiene mucho en común con :ref:`blinking_dot`, la diferencia es que coloca el estado de alternancia en el evento del ratón. Esto hace que el LED no parpadee automáticamente, sino que se encienda y se apague con un clic del ratón. Y en el evento ``mouseClicked()``, se utiliza la función ``dist()`` para determinar la posición del ratón en el momento del clic, y se considera que el punto ha sido clickeado solo si la distancia entre el ratón y el centro del punto es menor que el radio.