Bluepill_Plantilla Es la plantilla base (mejorada) para soporte y compatibilidad en Mbed para la tarjeta "BluePill" basada en el procesador ARM M3 STM32F103C8T6

Dependencies:   mbed

Committer:
Antulius
Date:
Thu Aug 25 01:36:53 2022 +0000
Revision:
8:9cb2877285b2
Parent:
7:62b714b5d89d
Plantilla Mejorada y estructurada para la Tarjeta Bluepill

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Antulius 4:e1e547c34929 1 /* #############################################################################
Antulius 0:9f7581d1af6f 2 ** Archivo : main.c
Antulius 5:e2fe0990d8ad 3 ** Proyecto : STM32F103C8_Plantilla_Enhenced
Antulius 4:e1e547c34929 4 ** Procesador : STM32F103C8T6
Antulius 4:e1e547c34929 5 ** Plataforma : Blue Pill
Antulius 0:9f7581d1af6f 6 ** Herramienta : Mbed
Antulius 4:e1e547c34929 7 ** Compilador : Mbed Online C Compiler
Antulius 4:e1e547c34929 8 ** Version : Mbed-OS 5.15.0
Antulius 4:e1e547c34929 9 ** Fecha/Hora : 18-12-2019, 11:48, # CodeGen: 0
Antulius 0:9f7581d1af6f 10 ** Descripción :
Antulius 0:9f7581d1af6f 11 ** Este proyecto hace...
Antulius 0:9f7581d1af6f 12 ** This module contains user's application code.
Antulius 6:f47832fe0b07 13 ** Componentes : GPIO, Timer, PWM, etc .
Antulius 0:9f7581d1af6f 14 ** Configuraciones : Includes, Stacks y Drivers externos
Antulius 0:9f7581d1af6f 15 ** Autores :
Antulius 0:9f7581d1af6f 16 ** ATEAM Development Group:
Antulius 0:9f7581d1af6f 17 ** - Antulio Morgado Valle
Antulius 0:9f7581d1af6f 18 **
Antulius 0:9f7581d1af6f 19 ** Versión : Beta
Antulius 0:9f7581d1af6f 20 ** Revisión : A
Antulius 0:9f7581d1af6f 21 ** Release : 0
Antulius 0:9f7581d1af6f 22 ** Bugs & Fixes :
Antulius 0:9f7581d1af6f 23 ** Date : 20/10/2019
Antulius 0:9f7581d1af6f 24 ** Added support for Led_RGB
Antulius 0:9f7581d1af6f 25 ** 22/09/2018
Antulius 6:f47832fe0b07 26 ** Added LCD Menu, Beta version
Antulius 0:9f7581d1af6f 27 **
Antulius 0:9f7581d1af6f 28 ** ###########################################################################*/
Antulius 0:9f7581d1af6f 29 /*
Antulius 0:9f7581d1af6f 30 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Antulius 6:f47832fe0b07 31 : I N C L U D E S
Antulius 0:9f7581d1af6f 32 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Antulius 0:9f7581d1af6f 33 */
Antulius 1:c0ed6c52c441 34 #include "stm32f103c8t6.h"
Antulius 0:9f7581d1af6f 35 #include "mbed.h"
Antulius 5:e2fe0990d8ad 36 #include "Serial.h"
Antulius 0:9f7581d1af6f 37 //#include "AnalogIn.h"
Antulius 6:f47832fe0b07 38 //#include "PwmOut.h"
Antulius 0:9f7581d1af6f 39 //#include "Led_RGB.h"
Antulius 5:e2fe0990d8ad 40 //#include <stdio.h>
Antulius 6:f47832fe0b07 41 //#include <conio.h>
Antulius 6:f47832fe0b07 42 //#include <stdlib.h>
Antulius 0:9f7581d1af6f 43 /*
Antulius 0:9f7581d1af6f 44 :...............................................................................
Antulius 6:f47832fe0b07 45 : D E F I N I C I O N E S
Antulius 0:9f7581d1af6f 46 :...............................................................................
Antulius 0:9f7581d1af6f 47 */
Antulius 5:e2fe0990d8ad 48 #define FALSE 0 // Estado FALSO
Antulius 5:e2fe0990d8ad 49 #define TRUE 1 // Estado VERDADERO
Antulius 8:9cb2877285b2 50 #define HIGH 1 // Estado ALTO
Antulius 8:9cb2877285b2 51 #define LOW 0 // Estado BAJO
Antulius 8:9cb2877285b2 52 #define ON 0 // Estado para ENCENDIDO
Antulius 8:9cb2877285b2 53 #define OFF 1 // Estado para APAGADO
Antulius 8:9cb2877285b2 54 #define BUZZ_ON 0 // Estado para Buzzer Encendido
Antulius 8:9cb2877285b2 55 #define BUZZ_OFF 1 // Estado para Buzzer Apagado
Antulius 8:9cb2877285b2 56 #define KEY_ON 0 // Estado para boton presionado
Antulius 8:9cb2877285b2 57 #define KEY_OFF 1 // Estado para boton sin presionar
Antulius 8:9cb2877285b2 58 #define KEY_HOLD 2 // Estado para boton mantenido
Antulius 8:9cb2877285b2 59 #define KEY_RELEASE 3 // Estado para boton liberado
Antulius 8:9cb2877285b2 60 #define KEY_REPEAT 4 // Estado para boton Repetido
Antulius 8:9cb2877285b2 61 #define LED_ON 1 // Estado para Led Encendido
Antulius 8:9cb2877285b2 62 #define LED_OFF 0 // Estado para Led Apagado
Antulius 8:9cb2877285b2 63 #define TICKER_RATE 1000 // Periodo de interrupción Ticker (us)
Antulius 6:f47832fe0b07 64 #define BAUD_RATE 115200 // Velocidad de Transmisión (Bauds)
Antulius 5:e2fe0990d8ad 65 // Velocidades Permitidas:
Antulius 5:e2fe0990d8ad 66 // 300, 600, 1200, 2400, 4800, 9600,
Antulius 5:e2fe0990d8ad 67 // 14400, 19600, 28800, 38400, 57600
Antulius 5:e2fe0990d8ad 68 // 115200, 230400
Antulius 0:9f7581d1af6f 69 /*
Antulius 6:f47832fe0b07 70 +------------------------------------------------------------------------------+
Antulius 6:f47832fe0b07 71 | C O N F I G U R A C I O N D E P U E R T O S |
Antulius 6:f47832fe0b07 72 +------------------------------------------------------------------------------+
Antulius 6:f47832fe0b07 73 */
Antulius 6:f47832fe0b07 74 Ticker TimerInt; // Inicializa la Interrupción por Timer
Antulius 6:f47832fe0b07 75 DigitalOut Led_Monitor(LED1); // Inicializa el LED Monitor (Interno)
Antulius 6:f47832fe0b07 76 DigitalOut Led_Testigo(PB_1); // Inicializa el LED Testigo (Externo)
Antulius 6:f47832fe0b07 77 PwmOut Pwm1(PA_7); // Inicializa el PWM para el LED Externo
Antulius 6:f47832fe0b07 78 PwmOut Buzzer(PB_0); // Inicializa el PWM para el Buzzer Externo
Antulius 7:62b714b5d89d 79 AnalogIn Sensor1(PA_1); // Inicializa Canal Analógico para Potenciometro 1
Antulius 8:9cb2877285b2 80 Serial Terminal(PA_2, PA_3); // Inicializa la Comunicación Serial a la PC (Tx, Rx)
Antulius 6:f47832fe0b07 81 /*
Antulius 0:9f7581d1af6f 82 +-------------------------------------------------------------------------------
Antulius 6:f47832fe0b07 83 | V A R I A B L E S G L O B A L E S |
Antulius 0:9f7581d1af6f 84 +-------------------------------------------------------------------------------
Antulius 0:9f7581d1af6f 85 */
Antulius 6:f47832fe0b07 86 uint16_t v_rate=TICKER_RATE/2; // Velocidad de barrido (500us = 0.5ms)
Antulius 6:f47832fe0b07 87 uint16_t v_counter=250; // Cuenta inicial de 250us
Antulius 6:f47832fe0b07 88 uint16_t v_blink=0; // Cuenta inical de parpadeos
Antulius 6:f47832fe0b07 89 uint16_t v_cuenta=0; // Cuenta inical de parpadeos del LED
Antulius 0:9f7581d1af6f 90 /* END variables */
Antulius 0:9f7581d1af6f 91
Antulius 0:9f7581d1af6f 92 /*
Antulius 0:9f7581d1af6f 93 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Antulius 0:9f7581d1af6f 94 | Definición de Funciones Prototipo y Rutinas de los Vectores de Interrupción
Antulius 0:9f7581d1af6f 95 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Antulius 0:9f7581d1af6f 96 */
Antulius 0:9f7581d1af6f 97 // Las Definiciones de Funciones Prototipo
Antulius 0:9f7581d1af6f 98 // y Apuntadores a Vectores de Interrupciones van aquí !
Antulius 6:f47832fe0b07 99 void TimerInt_OnInterrupt(void);
Antulius 0:9f7581d1af6f 100 void Blinking_Led(void);
Antulius 5:e2fe0990d8ad 101 void Clear_Screen(void);
Antulius 6:f47832fe0b07 102 void Buzzer_Beep(void);
Antulius 6:f47832fe0b07 103 void Setup(void);
Antulius 0:9f7581d1af6f 104 /* END prototypes */
Antulius 0:9f7581d1af6f 105
Antulius 6:f47832fe0b07 106 /* END definitions */
Antulius 0:9f7581d1af6f 107 /*
Antulius 0:9f7581d1af6f 108 #===============================================================================
Antulius 6:f47832fe0b07 109 || ||
Antulius 6:f47832fe0b07 110 || P R O G R A M A P R I N C I P A L ||
Antulius 6:f47832fe0b07 111 || ||
Antulius 0:9f7581d1af6f 112 #===============================================================================
Antulius 0:9f7581d1af6f 113 */
Antulius 6:f47832fe0b07 114 int main() // El código secuencial comienza aquí
Antulius 6:f47832fe0b07 115 {
Antulius 8:9cb2877285b2 116 //=================== Secuencia Principal =====================================
Antulius 6:f47832fe0b07 117 // Inicialización de variables, puertos, interrupciones y carátula
Antulius 6:f47832fe0b07 118 Setup(); // Inicialización de puertos, interrupciones y condiciones iniciales
Antulius 6:f47832fe0b07 119 Clear_Screen(); // Limpia la pantalla de la Terminal
Antulius 8:9cb2877285b2 120 //=================== Lazo Principal ===========================================
Antulius 6:f47832fe0b07 121 // El Lazo del Programa principal está aquí !!!
Antulius 6:f47832fe0b07 122 while (true)
Antulius 5:e2fe0990d8ad 123 {
Antulius 5:e2fe0990d8ad 124 Blinking_Led(); // Parapadeo del LED por Software
Antulius 6:f47832fe0b07 125 Pwm1 = Sensor1.read(); // Lee el Potenciometro y cambia el PWM
Antulius 6:f47832fe0b07 126 v_cuenta++;
Antulius 6:f47832fe0b07 127 Terminal.printf("\rLED Testigo Parpadea %d Veces ... \n\r",v_cuenta);
Antulius 5:e2fe0990d8ad 128 }
Antulius 0:9f7581d1af6f 129 }
Antulius 0:9f7581d1af6f 130 /* END main */
Antulius 0:9f7581d1af6f 131
Antulius 0:9f7581d1af6f 132 /*
Antulius 6:f47832fe0b07 133 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Antulius 6:f47832fe0b07 134 ::
Antulius 6:f47832fe0b07 135 :: V E C T O R E S D E I N T E R R U P C I Ó N
Antulius 6:f47832fe0b07 136 :: (Rutinas de Atención a Interrupciones)
Antulius 6:f47832fe0b07 137 ::
Antulius 6:f47832fe0b07 138 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Antulius 0:9f7581d1af6f 139 */
Antulius 0:9f7581d1af6f 140 // Las Rutinas de Atención a Interrupciones van aquí !
Antulius 5:e2fe0990d8ad 141 /*
Antulius 6:f47832fe0b07 142 ** =============================================================================
Antulius 5:e2fe0990d8ad 143 ** Vector : TimerInt_OnInterrupt()
Antulius 5:e2fe0990d8ad 144 */
Antulius 5:e2fe0990d8ad 145 /*!
Antulius 5:e2fe0990d8ad 146 ** @brief
Antulius 5:e2fe0990d8ad 147 ** Called after Ticker is done, [Interrupt service/event]
Antulius 5:e2fe0990d8ad 148 ** and it is enabled:
Antulius 5:e2fe0990d8ad 149 ** TimerInt.attach_us(&TimerInt_OnInterrupt, Ticker_Rate);
Antulius 5:e2fe0990d8ad 150 ** the event is enabled and will be executed every [Ticker_Rate]
Antulius 5:e2fe0990d8ad 151 ** @param
Antulius 5:e2fe0990d8ad 152 ** UserDataPtr - Pointer to the user or
Antulius 5:e2fe0990d8ad 153 ** RTOS specific data. The pointer is passed
Antulius 5:e2fe0990d8ad 154 ** as the parameter of Init method.
Antulius 5:e2fe0990d8ad 155 */
Antulius 6:f47832fe0b07 156 /* ========================================================================== */
Antulius 6:f47832fe0b07 157 void TimerInt_OnInterrupt() // Rutina de Atención al Ticker
Antulius 0:9f7581d1af6f 158 {
Antulius 6:f47832fe0b07 159 v_counter--; // Aquí va la Rutina de Servicio !
Antulius 6:f47832fe0b07 160 if (!v_counter)
Antulius 0:9f7581d1af6f 161 {
Antulius 6:f47832fe0b07 162 v_blink++;
Antulius 6:f47832fe0b07 163 Terminal.printf("\rLED Monitor Flashing %d Times !!! ",v_blink);
Antulius 6:f47832fe0b07 164 Led_Monitor = !Led_Monitor; // Parapadeo del LED por Interrupción (LED Toggled)
Antulius 6:f47832fe0b07 165 v_counter = v_rate; // Restablece el contador, Le asigna el periodo de 0.5ms (Rate=500)
Antulius 0:9f7581d1af6f 166 }
Antulius 0:9f7581d1af6f 167 }
Antulius 0:9f7581d1af6f 168 /* END Events */
Antulius 0:9f7581d1af6f 169 /*
Antulius 6:f47832fe0b07 170 ______________________________________________________________________________
Antulius 6:f47832fe0b07 171 /______________________________________________________________________________\
Antulius 6:f47832fe0b07 172 | |
Antulius 6:f47832fe0b07 173 | F U N C I O N E S P R O T O T I P O |
Antulius 6:f47832fe0b07 174 |______________________________________________________________________________|
Antulius 6:f47832fe0b07 175 \______________________________________________________________________________/
Antulius 0:9f7581d1af6f 176 */
Antulius 0:9f7581d1af6f 177 // Las Funciones Prototipo van aquí !
Antulius 5:e2fe0990d8ad 178 /*
Antulius 6:f47832fe0b07 179 |-------------------------------------------------------------------------------
Antulius 6:f47832fe0b07 180 | Función : Setup()
Antulius 6:f47832fe0b07 181 |
Antulius 6:f47832fe0b07 182 | Descripción : Inicialización de variables, puertos e interrupciones
Antulius 6:f47832fe0b07 183 |
Antulius 6:f47832fe0b07 184 | Parámetros : Ninguno
Antulius 6:f47832fe0b07 185 |
Antulius 6:f47832fe0b07 186 | Retorna : Nada
Antulius 6:f47832fe0b07 187 |-------------------------------------------------------------------------------
Antulius 6:f47832fe0b07 188 */
Antulius 6:f47832fe0b07 189 void Setup()
Antulius 6:f47832fe0b07 190 {
Antulius 6:f47832fe0b07 191 confSysClock(); // Inicialización del Sistema, Configure system clock (72MHz HSE clock, 48MHz USB clock)
Antulius 6:f47832fe0b07 192 TimerInt.attach_us(&TimerInt_OnInterrupt, TICKER_RATE); // Le asigna el periodo de interrupción de 1ms (TICKER_RATE=1000)
Antulius 6:f47832fe0b07 193 Terminal.baud(BAUD_RATE); // Se configura la velocidad de transmisión e inicia la comunicación serial.
Antulius 6:f47832fe0b07 194 Terminal.printf("The System is Wake Up!.\n\r");
Antulius 6:f47832fe0b07 195 Buzzer_Beep(); // Prueba el Buzzer
Antulius 6:f47832fe0b07 196 }
Antulius 6:f47832fe0b07 197 /*
Antulius 6:f47832fe0b07 198 |-------------------------------------------------------------------------------
Antulius 6:f47832fe0b07 199 | Función : Blinking_Led()
Antulius 6:f47832fe0b07 200 |
Antulius 6:f47832fe0b07 201 | Descripción : Rutina para Parpadeo del Led por Software
Antulius 6:f47832fe0b07 202 |
Antulius 6:f47832fe0b07 203 | Parámetros : Ninguno
Antulius 6:f47832fe0b07 204 |
Antulius 6:f47832fe0b07 205 | Retorna : Nada
Antulius 6:f47832fe0b07 206 |-------------------------------------------------------------------------------
Antulius 5:e2fe0990d8ad 207 */
Antulius 0:9f7581d1af6f 208 void Blinking_Led() // Software Blinking routine for LED
Antulius 0:9f7581d1af6f 209 {
Antulius 0:9f7581d1af6f 210 // The on-board LED is connected, via a resistor, to +3.3V (not to GND).
Antulius 0:9f7581d1af6f 211 // So to turn the LED on or off we have to set it to 0 or 1 respectively
Antulius 7:62b714b5d89d 212 Led_Testigo = LED_ON; // turn the LED on (using Positive Logic)
Antulius 0:9f7581d1af6f 213 wait_ms(200); // 200 millisecond
Antulius 7:62b714b5d89d 214 Led_Testigo = LED_OFF; // turn the LED off (using Positive Logic)
Antulius 0:9f7581d1af6f 215 wait_ms(1000); // 1000 millisecond
Antulius 0:9f7581d1af6f 216 }
Antulius 6:f47832fe0b07 217
Antulius 5:e2fe0990d8ad 218 /*
Antulius 6:f47832fe0b07 219 |-------------------------------------------------------------------------------
Antulius 6:f47832fe0b07 220 | Función : Clear_Screen()
Antulius 6:f47832fe0b07 221 |
Antulius 6:f47832fe0b07 222 | Descripción : Limpia la Pantalla de la Terminal
Antulius 6:f47832fe0b07 223 |
Antulius 6:f47832fe0b07 224 | Parámetros : Ninguno
Antulius 6:f47832fe0b07 225 |
Antulius 6:f47832fe0b07 226 | Retorna : Nada
Antulius 6:f47832fe0b07 227 |-------------------------------------------------------------------------------
Antulius 5:e2fe0990d8ad 228 */
Antulius 5:e2fe0990d8ad 229 void Clear_Screen()
Antulius 5:e2fe0990d8ad 230 {
Antulius 5:e2fe0990d8ad 231 // ANSI Terminal Commands
Antulius 6:f47832fe0b07 232 Terminal.printf("\x1B[2J"); // secuencia de Escape \e[2J
Antulius 6:f47832fe0b07 233 Terminal.printf("\x1B[H"); // secuencia de Escape \e[H
Antulius 5:e2fe0990d8ad 234 }
Antulius 6:f47832fe0b07 235
Antulius 5:e2fe0990d8ad 236 /*
Antulius 6:f47832fe0b07 237 |-------------------------------------------------------------------------------
Antulius 6:f47832fe0b07 238 | Función : Buzzer_Beep()
Antulius 6:f47832fe0b07 239 |
Antulius 6:f47832fe0b07 240 | Descripción : Rutina para prueba del Buzzer
Antulius 6:f47832fe0b07 241 |
Antulius 6:f47832fe0b07 242 | Parámetros : Ninguno
Antulius 6:f47832fe0b07 243 |
Antulius 6:f47832fe0b07 244 | Retorna : Nada
Antulius 6:f47832fe0b07 245 |-------------------------------------------------------------------------------
Antulius 5:e2fe0990d8ad 246 */
Antulius 5:e2fe0990d8ad 247 void Buzzer_Beep() // Software routine for Buzzer Beep
Antulius 5:e2fe0990d8ad 248 {
Antulius 6:f47832fe0b07 249 Terminal.printf("Testing Buzzer... \n\r");
Antulius 6:f47832fe0b07 250 Buzzer = BUZZ_ON;
Antulius 5:e2fe0990d8ad 251 wait_ms(750);
Antulius 6:f47832fe0b07 252 Buzzer = BUZZ_OFF;
Antulius 5:e2fe0990d8ad 253 wait_ms(125);
Antulius 6:f47832fe0b07 254 Buzzer = BUZZ_ON;
Antulius 5:e2fe0990d8ad 255 wait_ms(250);
Antulius 6:f47832fe0b07 256 Buzzer = BUZZ_OFF;
Antulius 5:e2fe0990d8ad 257 wait_ms(125);
Antulius 6:f47832fe0b07 258 Buzzer = BUZZ_ON;
Antulius 5:e2fe0990d8ad 259 wait_ms(500);
Antulius 6:f47832fe0b07 260 Buzzer = BUZZ_OFF;
Antulius 6:f47832fe0b07 261 Terminal.printf("Buzzer OK ! \n\r");
Antulius 5:e2fe0990d8ad 262 }
Antulius 0:9f7581d1af6f 263 /* END functions */
Antulius 0:9f7581d1af6f 264
Antulius 0:9f7581d1af6f 265 /* END program */
Antulius 0:9f7581d1af6f 266
Antulius 6:f47832fe0b07 267 /*
Antulius 6:f47832fe0b07 268 *+******************************************************************************
Antulius 6:f47832fe0b07 269 *+ D O C U M E N T A C I Ó N
Antulius 6:f47832fe0b07 270 *+******************************************************************************
Antulius 6:f47832fe0b07 271 *+ La documentación va aquí!:
Antulius 6:f47832fe0b07 272 *+
Antulius 6:f47832fe0b07 273 *+------------------------------------------------------------------------------
Antulius 6:f47832fe0b07 274 *+ IDENTIFICADORES
Antulius 6:f47832fe0b07 275 *+------------------------------------------------------------------------------
Antulius 6:f47832fe0b07 276 *+
Antulius 6:f47832fe0b07 277 *+ prefijo signifcado uso
Antulius 6:f47832fe0b07 278 *+ v_ variable (var) v_nombre_variable
Antulius 6:f47832fe0b07 279 *+ c_ constante (const) c_nombre_constante
Antulius 8:9cb2877285b2 280 *+ a_ arreglo (array) a_nombre_arreglo
Antulius 6:f47832fe0b07 281 *+ i_ indice (index) i_nombre_indice
Antulius 6:f47832fe0b07 282 *+ p_ apuntador (pointer) p_nombre_apuntador
Antulius 6:f47832fe0b07 283 *+ l_ etiqueta (label) l_nombre_etiqueta
Antulius 6:f47832fe0b07 284 *+ f_ función (function) f_nombre_funcion
Antulius 6:f47832fe0b07 285 *+
Antulius 6:f47832fe0b07 286 *+------------------------------------------------------------------------------
Antulius 0:9f7581d1af6f 287 *+ Conexión al Led Testigo:
Antulius 6:f47832fe0b07 288 *+------------------------------------------------------------------------------
Antulius 6:f47832fe0b07 289 *+
Antulius 0:9f7581d1af6f 290 *+ Los leds se pueden conectar a cualquier pin que se declare como DigitalOut.
Antulius 0:9f7581d1af6f 291 *+ El dispositivo puede drenar hasta 20ma por todas sus salidas a un voltaje de
Antulius 0:9f7581d1af6f 292 *+ 3.3V, pero se recomienda no exceder de 1mA por salida.
Antulius 0:9f7581d1af6f 293 *+ Esto se logra poniendo una resistencia limitadora de mínimo 330 Ohms.
Antulius 6:f47832fe0b07 294 *+
Antulius 0:9f7581d1af6f 295 *+ 3.3V o 5V
Antulius 0:9f7581d1af6f 296 *+ O
Antulius 0:9f7581d1af6f 297 *+ |
Antulius 0:9f7581d1af6f 298 *+ |
Antulius 0:9f7581d1af6f 299 *+ /
Antulius 0:9f7581d1af6f 300 *+ \ 1K
Antulius 0:9f7581d1af6f 301 *+ /
Antulius 0:9f7581d1af6f 302 *+ \ UTILIZANDO LÓGICA NEGATIVA
Antulius 0:9f7581d1af6f 303 *+ |
Antulius 0:9f7581d1af6f 304 *+ ___|___
Antulius 0:9f7581d1af6f 305 *+ \ /
Antulius 0:9f7581d1af6f 306 *+ \ /
Antulius 0:9f7581d1af6f 307 *+ \ /
Antulius 0:9f7581d1af6f 308 *+ __\/__
Antulius 0:9f7581d1af6f 309 *+ |
Antulius 0:9f7581d1af6f 310 *+ |__________________________ PIN (Digital Out)
Antulius 0:9f7581d1af6f 311 *+
Antulius 6:f47832fe0b07 312 *+
Antulius 6:f47832fe0b07 313 *+
Antulius 6:f47832fe0b07 314 *+
Antulius 0:9f7581d1af6f 315 *+ 1K
Antulius 6:f47832fe0b07 316 *+
Antulius 0:9f7581d1af6f 317 *+ _________/\ /\ /\ _____ PIN (Digital Out)
Antulius 0:9f7581d1af6f 318 *+ | \/ \/ \/
Antulius 6:f47832fe0b07 319 *+ |
Antulius 0:9f7581d1af6f 320 *+ |
Antulius 0:9f7581d1af6f 321 *+ ___|___
Antulius 0:9f7581d1af6f 322 *+ \ /
Antulius 0:9f7581d1af6f 323 *+ \ /
Antulius 0:9f7581d1af6f 324 *+ \ / UTILIZANDO LÓGICA POSITIVA
Antulius 0:9f7581d1af6f 325 *+ __\/__
Antulius 0:9f7581d1af6f 326 *+ |
Antulius 0:9f7581d1af6f 327 *+ |
Antulius 0:9f7581d1af6f 328 *+ |
Antulius 0:9f7581d1af6f 329 *+ ___|___
Antulius 0:9f7581d1af6f 330 *+ _____
Antulius 0:9f7581d1af6f 331 *+ ___
Antulius 0:9f7581d1af6f 332 *+ _
Antulius 0:9f7581d1af6f 333 *+
Antulius 0:9f7581d1af6f 334 *+ GND
Antulius 0:9f7581d1af6f 335 *+
Antulius 6:f47832fe0b07 336 *+------------------------------------------------------------------------------
Antulius 6:f47832fe0b07 337 *+ Descripción del Conexionado para el Buzzer Piezo-Eléctrico
Antulius 6:f47832fe0b07 338 *+------------------------------------------------------------------------------
Antulius 6:f47832fe0b07 339 *+
Antulius 6:f47832fe0b07 340 *+ 100
Antulius 6:f47832fe0b07 341 *+ PWM Pin -----/\/\/\/-------|
Antulius 6:f47832fe0b07 342 *+ |
Antulius 6:f47832fe0b07 343 *+ | +
Antulius 6:f47832fe0b07 344 *+ ( )
Antulius 6:f47832fe0b07 345 *+ ( o ) BUZZER
Antulius 6:f47832fe0b07 346 *+ ( )
Antulius 6:f47832fe0b07 347 *+ |
Antulius 6:f47832fe0b07 348 *+ |
Antulius 6:f47832fe0b07 349 *+ |
Antulius 6:f47832fe0b07 350 *+ -----
Antulius 6:f47832fe0b07 351 *+ ---
Antulius 6:f47832fe0b07 352 *+ -
Antulius 6:f47832fe0b07 353 *+
Antulius 6:f47832fe0b07 354 *+------------------------------------------------------------------------------
Antulius 6:f47832fe0b07 355 *+ Conexión al Potenciometro:
Antulius 6:f47832fe0b07 356 *+
Antulius 6:f47832fe0b07 357 *+ Como recomendación hay que poner un filtro pasa bajas para evitar que el
Antulius 6:f47832fe0b07 358 *+ ruido al convertidor analógico/digital.
Antulius 6:f47832fe0b07 359 *+
Antulius 6:f47832fe0b07 360 *+ 3.3V
Antulius 6:f47832fe0b07 361 *+ O
Antulius 6:f47832fe0b07 362 *+ |
Antulius 6:f47832fe0b07 363 *+ |
Antulius 6:f47832fe0b07 364 *+ | Conexión de los Potenciometros
Antulius 6:f47832fe0b07 365 *+ |
Antulius 6:f47832fe0b07 366 *+ /
Antulius 6:f47832fe0b07 367 *+ \ 10K
Antulius 6:f47832fe0b07 368 *+ / 100
Antulius 6:f47832fe0b07 369 *+ \ <----/\/\/\/\--------------> PIN (AnalogIn Pin)
Antulius 6:f47832fe0b07 370 *+ \ |
Antulius 6:f47832fe0b07 371 *+ / |
Antulius 6:f47832fe0b07 372 *+ \ ----- 0.1uF
Antulius 6:f47832fe0b07 373 *+ | -----
Antulius 6:f47832fe0b07 374 *+ | |
Antulius 6:f47832fe0b07 375 *+ | |
Antulius 6:f47832fe0b07 376 *+ | |
Antulius 6:f47832fe0b07 377 *+ ___|___ ___|___
Antulius 6:f47832fe0b07 378 *+ _____ _____
Antulius 6:f47832fe0b07 379 *+ ___ ___
Antulius 6:f47832fe0b07 380 *+ _ _
Antulius 6:f47832fe0b07 381 *+
Antulius 6:f47832fe0b07 382 *+ GND GND
Antulius 6:f47832fe0b07 383 *+
Antulius 6:f47832fe0b07 384 *+
Antulius 6:f47832fe0b07 385 *+ Conexión al Joy Stick Keyes
Antulius 6:f47832fe0b07 386 *+
Antulius 6:f47832fe0b07 387 *+ 1 2 3 4 5
Antulius 6:f47832fe0b07 388 *+ GND Vcc VrX VrY SW
Antulius 6:f47832fe0b07 389 *+
Antulius 6:f47832fe0b07 390 *+
Antulius 6:f47832fe0b07 391 *+
Antulius 6:f47832fe0b07 392 *+------------------------------------------------------------------------------
Antulius 6:f47832fe0b07 393 *+ Conexión hacia la Terminal Serial:
Antulius 6:f47832fe0b07 394 *+------------------------------------------------------------------------------
Antulius 6:f47832fe0b07 395 *+
Antulius 6:f47832fe0b07 396 *+ Los Transeptores recomedados para se pueden conectar a los siguientes pines
Antulius 6:f47832fe0b07 397 *+ de las UART's que posee la Bluepill por medio del siguiente conexionado.
Antulius 6:f47832fe0b07 398 *+
Antulius 6:f47832fe0b07 399 *+ UART1 UART2 UART3 CABLE CP2102 PL2303 CH340G FT232RL
Antulius 6:f47832fe0b07 400 *+ PA_9 PA_2 PB_10 Tx ------> Rx 3 2 2 3
Antulius 6:f47832fe0b07 401 *+ PA_10 PA_3 PB_11 Rx <------ Tx 4 3 3 2
Antulius 6:f47832fe0b07 402 *+ 3V ------ 3V 5 5 4 1
Antulius 6:f47832fe0b07 403 *+ GND ------ GND 2 1 1 4
Antulius 6:f47832fe0b07 404 *+------------------------------------------------------------------------------
Antulius 0:9f7581d1af6f 405 *+
Antulius 0:9f7581d1af6f 406 *+ Powered by
Antulius 0:9f7581d1af6f 407 *+
Antulius 0:9f7581d1af6f 408 *+ T H E A N T U L I U ' S T E A M R&D Unltd
Antulius 0:9f7581d1af6f 409 *+
Antulius 0:9f7581d1af6f 410 *+ Research, Development, Systems, Equipment, Support & Spare Parts.
Antulius 8:9cb2877285b2 411 *+ (C) Copyright 1989-2022, All Rights Reserved
Antulius 0:9f7581d1af6f 412 *+
Antulius 6:f47832fe0b07 413 *+ Welcome to The Beaners Proyect Community!
Antulius 0:9f7581d1af6f 414 *+----------------------------------------------------------------------------*/
Antulius 0:9f7581d1af6f 415
Antulius 3:1ccbb37e3828 416 /* END documentation */
Antulius 3:1ccbb37e3828 417
Antulius 6:f47832fe0b07 418 /* END Mbed */