Capítulo 5: Pulsador

Un pulsador en modo pull-up (PIN_C0) y un LED (PIN_C6) conectados al PIC18F2550. Al pulsar BUTTON (PIN_C0 vale 0) se enciende el LED, al soltar (PIN_C0 vale 1) se apaga el LED.

Hemos incluido un if-else y cómo leer un bit del exterior. Además, hemos usado #define.

Código fuente: Pulsador.c

lat-vs-port

TRISCbits.TRISC0=1;            // PIN_C0 periférico de entrada, BUTTON
if (PORTCbits.RC0==0)…   // si PIN_C0 vale 0, entonces…

Explicación detallada del funcionamiento de los biestables y puertas lógicas al usar: TRIS, LAT, PORT.

TRIS vs LAT vs PORT.pdf

RESUMEN y RECOMENDACIÓN:

TRIS: configura puertos para conectar periféricos de entrada (1) o salida (0).

//TRISx=…   //TRISxxbits.TRISxx=…

LAT: escribe un dato en un puerto de salida.

//LATx=…   //LATxxbits.LATxx=…

PORT: lee un dato de un puerto de entrada.

//PORTx    //PORTxxbits.Rxx

Capítulo 4: Coche fantástico

Parecido al Blinking_LED, pero accediendo al puerto B completo. Se ha programado un juego de luces con 7 LEDs (B0-B6), similar al del “Coche Fantástico”.

Código fuente: coche_fantastico.c

TRISB=0b00000000;   // Todo el puerto B de salida (TRISB=0x00;)
LATB = 0b00001111;   // B0-B3 nivel alto, B4-B7 nivel bajo

Capítulo 3: Compilar, cargar y ejecutar Blinking_LED

Usando la placa MKBot-Motherboard v.3, en MPLAB-X v.3.2, para el PIC18F2550, con un cristal de 20MHz, y una frecuencia de trabajo de 48MHz. Parpadea un LED en PIN_C6 cada 500ms.

Código fuente: Blinking_LED.c

TRISCbits.TRISC6=0;  // PIN_C6 periférico de salida, LED
LATCbits.LATC6 = 1;  // PIN_C6 nivel alto, enciende LED
LATCbits.LATC6 = 0;  // PIN_C6 nivel bajo, apaga LED

Capítulo 2: Configurar fuses

Cómo configurar los fuses en MPLAB-X v.3.2, para el PIC18F2550, con un cristal de 20MHz, en especial los fuses del oscilador.

oscilador

#include <xc.h>
#pragma config PLLDIV = 5                       // PLL Prescaler: divide por 5 (Oscilador entrada: 20MHz)
#pragma config CPUDIV = OSC1_PLL2    // System Clock Postscaler: Divide entre 2 los 96MHz del PLL, CPU = 48MHz
#pragma config USBDIV = 2                      // USB Clock Selection bit: Divide entre 2 los 96MHz del PLL, USB = 48MHz
#pragma config FOSC = HSPLL_HS        // Oscillator Selection: HS oscillator, PLL habilitado (HSPLL))
#define _XTAL_FREQ 48000000           // Frecuencia de trabajo 48MHz (gracias al PLL)

 

MakerBot Replicator, vídeo-tutorial

Emilio y Aitor, de Occamproject, protagonizan este vídeo-tutorial, donde explican como hacer un buen uso de la impresora 3D MakerBot Replicator, tanto a nivel de HW como de SW. El vídeo fue grabado y editado por los alumnos de Imagen y Sonido del IES Politécnico Jesús Marín.

Iniciación a la Electrónica a través de la Robótica

Tras el enorme éxito de los Talleres de Verano de Principia, decidimos crear nuestras propias placas de Iniciación a la Electrónica a través de la Robótica, y mandarlas a fábrica: Bigotes, Polilla, Sniffer Black y Sniffer White.

MEMORIA_BOTS.pdf

TablasResumen.pdf

Polilla_PCB.zip   Bigotes_PCB.zip   SnifferBlack_PCB.zip   SnifferWhite_PCB.zip

Estas placas fueron desarrolladas como Proyecto Integrado del alumno Víctor Morilla Banderas, de la última promoción del ciclo Desarrollo de Productos Electrónicos del IES Politécnico Jesús Marín. Casi todos los circuitos electrónicos están basados en prototipos del profesor José A. Cárdenas Martínez.

Polilla

Estos proyectos están basados en los robots Polilla del profesor José A. Cárdenas Martínez.

Es un circuito simétrico, con dos LDR (resistencias variable con la luz), dos transistores, dos potenciómetro y dos motores. Además, hemos añadido dos LEDs a la alimentación, y dos diodos de protección ante picos de corriente inversa. Si por ejemplo, le llega luz al LDR de la derecha, el transistor conduce corriente y mueve el motor de la izquierda. Si no llega luz, el transistor no conduce y el motor no se mueve.

Polilla_esquema

Para la PCB se ha intentado mantener la disposición del esquema electrónico con fines didácticos.

Polilla_comp

Polilla_PCB