Skip to content

Instantly share code, notes, and snippets.

View jerivas's full-sized avatar

Ed Rivas jerivas

View GitHub Profile
@jerivas
jerivas / twin_motor_control.ino
Last active September 7, 2024 11:45
Control two stepper motors' speed and direction with two analog inputs (joystick). By Eduardo Rivas, David Escobar and Ángel Moreno for Universidad Don Bosco de El Salvador, 2013.
/*
Dual Stepper Motor Control (Arduino UNO R3)
Controls the speed and direction of two stepper motors
via two analog inputs. Used to achieve two-dimensional
movement controlled by a joystick. End-of-track sensors
prevent damage to the structure and motors.
Based on "Speed Control" example of the Stepper lib.
Please note the Stepper library produces a bipolar sequence.
By swapping the two middle cables, a unipolar seq. is obtained.
@jerivas
jerivas / prime_counter.asm
Last active December 21, 2015 19:59
Contador de números primos.
;Contador de numeros primos
;Jose Eduardo Rivas Melgar RM100161
;David Antonio Escobar Contreras EC100119
;Ángel Gerardo Moreno Galán MG070209
;El contador de numeros primos permite iterar sobre los numeros primos menores
;que 100 usando dos pushbuttons, uno para moverse de forma ascendente y otro
;para descendente. El resultado se muestra en dos displays de 7 segmentos
;multiplexados.
@jerivas
jerivas / person_counter.asm
Last active December 21, 2015 20:00
Contador de personas
;Contador de personas en una habitación
;José Eduardo Rivas Melgar RM100161
;David Antonio Escobar Contreras EC100119
;Angel Gerardo Moreno Galan MG070209
;El contador de personas incrementa un contador cada vez que una persona entra
;a la habitación, y lo decrementa cuando una sale. El numero de personas se
;muestra en todo momento en dos displays a través del puerto D. Se usan dos
;sensores, uno de entrada y otro de salida, para saber cuando una persona ha
;pasado por la entrada o salida.
@jerivas
jerivas / matrix_keyboard.asm
Last active May 29, 2024 23:24
Control de teclado matricial 4x4
;Control de teclado matricial 4x4
;José Eduardo Rivas Melgar RM100161
;David Antonio Escobar Contreras EC100119
;Angel Gerardo Moreno Galan MG070209
;Escanea un teclado matricial de 4x4 y muestra la ultima teclada presionada
;en base 16 en un display de 7 segmentos.
title "Control de teclado matricial"
list p=18f4550
@jerivas
jerivas / encrypt.c
Last active December 21, 2015 23:49
Encripta 256 localidades de memoria con rotación y XOR contra un número primo al azar.
/*Cifrado de bloques de memoria
José Eduardo Rivas Melgar RM100161
David Antonio Escobar Contreras EC100119
Ángel Gerardo Moreno Galán MG070209
Encripta 256 localidades de memoria con rotación y XOR contra un número primo al azar.
*/
#include "stdlib.h"
#include "stdio.h"
@jerivas
jerivas / encrypt_bytes.c
Created September 6, 2013 00:54
Encripta 256 localidades de memoria byte por byte.
/*Cifrado de bloques de memoria
José Eduardo Rivas Melgar RM100161
Carlos Ernesto Linares Zelada ZR090636
Encripta 256 localidades de memoria con rotación y XOR contra un número primo al azar.
*/
#include "stdlib.h"
#include "stdio.h"
#include "p18f4550.h"
//Cronómetro con centi-segundos
//Genera una frecuencia de 100 Hz, cada 100 pasos se cuenta 1 segundo
//El resultado se muestra en vivo en una LCD
//Eduardo Rivas, Carlos Zelada
#include <p18f4550.h> //Cabecera de Núcleo
#include <xc.h>
#include <delays.h>
#include <stdlib.h>
// Reloj digital configurable con dos alarmas
// Muestra la hora en minutos, segundos, horas e indicador am/pm en una LCD
// Cuenta con tres botones: selector de modo, ajuste de minutos y de segundos
// La alarma se activa por un minuto y no se puede desactivar
// Ángel Moreno
// David Escobar
// Eduardo Rivas
#include "p18f4550.h"
#include "xc.h"
@jerivas
jerivas / lcd.h
Last active December 24, 2015 01:19
//Archivo de cabecera para configuración y uso de módulo LCD
//con el PIC18F4550 en el puerto D y E.
#include "p18f4550.h" //Cabecera de Núcleo
#include "xc.h"
#include "delays.h"
#include "stdlib.h"
//Prototipos de las funciones
void LCD_Retardo_Corto();
#ifndef __DELAYS_H
#define __DELAYS_H
#if defined (__18CXX) || defined(_PLIB)
/* C18 cycle-count delay routines. */
/* Delay of exactly 1 Tcy */
#define Delay1TCY() _delay(1)