Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SEDE GUAYAQUIL
DOCUMENTO DE PRCTICAS
JOSUE MONCAYO
AO LECTIVO
PERIODO 50
Prctica 1: Uso del simulador
1. Comprensin del programa asignado y explicacin de cada instruccin.
MOV BL,80
PUSH BL
main:
POP AL
XOR AL,0
PUSH AL
OUT 03
MOV AL,30
CALL 90
; ---------------------------------------------------
MOV CL,20
Bang:
DEC CL
JZ Main
IN 03
CMP AL,80
JZ turnOn
CMP AL,81
JZ turnOff
CMP AL,0
JZ turnOn
turnOff:
MOV AL,0
OUT 03
jmp Bang
turnOn:
MOV AL,80
OUT 03
jmp Bang
; ---------------------------------------------------
ORG 90
PUSH AL
delay:
DEC AL
JNZ delay
POP AL
RET
; ---------------------------------------------------
END
; ---------------------------------------------------
Prctica 2: Programacin en lenguaje ensamblado
CLO
MOV BL,80
PUSH BL
main:
MOV CL, 80
POP AL
OR AL,0
PUSH AL
OUT 03
MOV AL,0
CALL 90
; ---------------------------------------------------
MOV CL,40
Bang:
DEC CL
JZ Main
IN 03
CMP AL,80
JZ turnOn
CMP AL,81
JZ turnOff
CMP AL,20
JZ turnOn
turnOff:
MOV AL,20
OUT 03
jmp Bang
turnOn:
MOV AL,80
OUT 03
jmp Bang
; ---------------------------------------------------
ORG 90
PUSH AL
delay:
DEC AL
JNZ delay
POP AL
RET
; ---------------------------------------------------
END
; ---------------------------------------------------
Prctica N3
b.- Paralelismo
c.- Segmentacin
LOAD A,M
LOAD B,M
SUB C<-A-B
NOOP
STORE C
4.- Del chuletario de instrucciones, indique una instruccin de cada tipo
SALTO CONDICIONAL : IF
SALTO INCONDICIONAL : JMP
CISC
MIPS, Millions Instruction Per Second.
PA-RISC, Hewlett Packard.
SPARC, Scalable Processor Architecture, Sun Microsystems.
POWER PC, Apple, Motorola e IBM.
Fuente:http://www.aprendiendoarduino.com/
1.- Crear cuenta en simulador de arduino
https://circuits.io/circuits/5447022-the-unnamed-circuit/edit
#include <LiquidCrystal.h>
// Left LCD
LiquidCrystal lcd1(7, 8, 9, 10, 11, 12);
// Right LCD
LiquidCrystal lcd2(1, 2, 3, 4, 5, 6);
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
// NeoPixel Ring 24
#define PIN 13
#define NUMPIXELS 24
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB +
NEO_KHZ800);
int delayval = 50;
long previousMillis = 0;
long interval = 950;
int seconds = 0;
int hour = 0;
int hourButtonState = 0;
int minButtonState = 0;
byte full[8] = {
B11111, B11111, B11111, B11111, B11111, B11111, B11111, B11111,
};
byte halfL[8] = {
B11111, B11111, B11111, B11111, B00000, B00000, B00000, B00000,
};
byte halfR[8] = {
B00000, B00000, B00000, B00000, B11111, B11111, B11111, B11111,
};
// the setup routine runs once when you press reset:
void setup() {
// set button pins
pinMode(14, INPUT); // set minute
pinMode(15, INPUT); // set hour
// make custom characters
lcd1.createChar(0, halfR);
lcd1.createChar(1, halfL);
lcd1.createChar(2, full);
lcd2.createChar(0, halfR);
lcd2.createChar(1, halfL);
lcd2.createChar(2, full);
// set LCD1 size
lcd1.begin(16,2);
// set LCD2 size
lcd2.begin(16, 2);
// pixel ring
pixels.begin();
// initial setup
lcd1.clear();
num0lcd1();
lcd2.clear();
num0lcd2();
//pixels.setPixelColor(17, pixels.Color(0,150,0));
//pixels.setPixelColor(18, pixels.Color(0,150,0));
pixels.show();
}
// the loop routine runs over and over again forever:
void loop() {
hourButtonState = digitalRead(15);
minButtonState = digitalRead(14);
if (hourButtonState == HIGH) {
hour++;
runClock ();
}
if (minButtonState == HIGH) {
seconds++;
runClock ();
}
unsigned long currentMillis = millis();
if (currentMillis - previousMillis > interval) {
if (seconds == 59) {
seconds = 0;
if (hour == 11) {
hour = 0;
} else {
hour ++;
}
} else {
seconds ++;
}
previousMillis = currentMillis;
runClock ();
}
delay(10);
}
void runClock () {
if (seconds == 0) {
lcd1.clear();
num0lcd1();
lcd2.clear();
num0lcd2();
}
if (seconds == 1 || seconds == 11 || seconds == 21 || seconds == 31 ||
seconds == 41 || seconds == 51) {
lcd1.clear();
num1lcd1();
}
if (seconds == 2 || seconds == 12 || seconds == 22 || seconds == 32 ||
seconds == 42 || seconds == 52) {
lcd1.clear();
num2lcd1();
}
if (seconds == 3 || seconds == 13 || seconds == 23 || seconds == 33 ||
seconds == 43 || seconds == 53) {
lcd1.clear();
num3lcd1();
}
if (seconds == 4 || seconds == 14 || seconds == 24 || seconds == 34 ||
seconds == 44 || seconds == 54) {
lcd1.clear();
num4lcd1();
}
if (seconds == 5 || seconds == 15 || seconds == 25 || seconds == 35 ||
seconds == 45 || seconds == 55) {
lcd1.clear();
num5lcd1();
}
if (seconds == 6 || seconds == 16 || seconds == 26 || seconds == 36 ||
seconds == 46 || seconds == 56) {
lcd1.clear();
num6lcd1();
}
if (seconds == 7 || seconds == 17 || seconds == 27 || seconds == 37 ||
seconds == 47 || seconds == 57) {
lcd1.clear();
num7lcd1();
}
if (seconds == 8 || seconds == 18 || seconds == 28 || seconds == 38 ||
seconds == 48 || seconds == 58) {
lcd1.clear();
num8lcd1();
}
if (seconds == 9 || seconds == 19 || seconds == 29 || seconds == 39 ||
seconds == 49 || seconds == 59) {
lcd1.clear();
num9lcd1();
}
if (seconds == 10) {
lcd1.clear();
num0lcd1();
lcd2.clear();
num1lcd2();
}
if (seconds == 20) {
lcd1.clear();
num0lcd1();
lcd2.clear();
num2lcd2();
}
if (seconds == 30) {
lcd1.clear();
num0lcd1();
lcd2.clear();
num3lcd2();
}
if (seconds == 40) {
lcd1.clear();
num0lcd1();
lcd2.clear();
num4lcd2();
}
if (seconds == 50) {
lcd1.clear();
num0lcd1();
lcd2.clear();
num5lcd2();
}
if (hour == 0) {
pixels.setPixelColor(15, pixels.Color(0,0,0));
pixels.setPixelColor(16, pixels.Color(0,0,0));
pixels.setPixelColor(17, pixels.Color(0,150,0));
pixels.setPixelColor(18, pixels.Color(0,150,0));
pixels.show();
}
if (hour == 1) {
pixels.setPixelColor(17, pixels.Color(0,0,0));
pixels.setPixelColor(18, pixels.Color(0,0,0));
pixels.setPixelColor(19, pixels.Color(0,150,0));
pixels.setPixelColor(20, pixels.Color(0,150,0));
pixels.show();
}
if (hour == 2) {
pixels.setPixelColor(19, pixels.Color(0,0,0));
pixels.setPixelColor(20, pixels.Color(0,0,0));
pixels.setPixelColor(21, pixels.Color(0,150,0));
pixels.setPixelColor(22, pixels.Color(0,150,0));
pixels.show();
}
if (hour == 3) {
pixels.setPixelColor(21, pixels.Color(0,0,0));
pixels.setPixelColor(22, pixels.Color(0,0,0));
pixels.setPixelColor(23, pixels.Color(0,150,0));
pixels.setPixelColor(0, pixels.Color(0,150,0));
pixels.show();
}
if (hour == 4) {
pixels.setPixelColor(23, pixels.Color(0,0,0));
pixels.setPixelColor(0, pixels.Color(0,0,0));
pixels.setPixelColor(1, pixels.Color(0,150,0));
pixels.setPixelColor(2, pixels.Color(0,150,0));
pixels.show();
}
if (hour == 5) {
pixels.setPixelColor(1, pixels.Color(0,0,0));
pixels.setPixelColor(2, pixels.Color(0,0,0));
pixels.setPixelColor(3, pixels.Color(0,150,0));
pixels.setPixelColor(4, pixels.Color(0,150,0));
pixels.show();
}
if (hour == 6) {
pixels.setPixelColor(3, pixels.Color(0,0,0));
pixels.setPixelColor(4, pixels.Color(0,0,0));
pixels.setPixelColor(5, pixels.Color(0,150,0));
pixels.setPixelColor(6, pixels.Color(0,150,0));
pixels.show();
}
if (hour == 7) {
pixels.setPixelColor(5, pixels.Color(0,0,0));
pixels.setPixelColor(6, pixels.Color(0,0,0));
pixels.setPixelColor(7, pixels.Color(0,150,0));
pixels.setPixelColor(8, pixels.Color(0,150,0));
pixels.show();
}
if (hour == 8) {
pixels.setPixelColor(7, pixels.Color(0,0,0));
pixels.setPixelColor(8, pixels.Color(0,0,0));
pixels.setPixelColor(9, pixels.Color(0,150,0));
pixels.setPixelColor(10, pixels.Color(0,150,0));
pixels.show();
}
if (hour == 9) {
pixels.setPixelColor(9, pixels.Color(0,0,0));
pixels.setPixelColor(10, pixels.Color(0,0,0));
pixels.setPixelColor(11, pixels.Color(0,150,0));
pixels.setPixelColor(12, pixels.Color(0,150,0));
pixels.show();
}
if (hour == 10) {
pixels.setPixelColor(11, pixels.Color(0,0,0));
pixels.setPixelColor(12, pixels.Color(0,0,0));
pixels.setPixelColor(13, pixels.Color(0,150,0));
pixels.setPixelColor(14, pixels.Color(0,150,0));
pixels.show();
}
if (hour == 11) {
pixels.setPixelColor(13, pixels.Color(0,0,0));
pixels.setPixelColor(14, pixels.Color(0,0,0));
pixels.setPixelColor(15, pixels.Color(0,150,0));
pixels.setPixelColor(16, pixels.Color(0,150,0));
pixels.show();
}
}
void num0lcd1 () {
lcd1.setCursor(0,0);
lcd1.write(byte(2)); // full
lcd1.setCursor(0, 1);
lcd1.write(byte(2));
lcd1.setCursor(1, 1);
lcd1.write(byte(0)); // half right
lcd1.setCursor(1, 0);
lcd1.write(byte(1)); // half left
lcd1.setCursor(2, 1);
lcd1.write(byte(0));
lcd1.setCursor(2, 0);
lcd1.write(byte(1));
lcd1.setCursor(3, 1);
lcd1.write(byte(0));
lcd1.setCursor(3, 0);
lcd1.write(byte(1));
lcd1.setCursor(4, 1);
lcd1.write(byte(0));
lcd1.setCursor(4, 0);
lcd1.write(byte(1));
lcd1.setCursor(5, 1);
lcd1.write(byte(0));
lcd1.setCursor(5, 0);
lcd1.write(byte(1));
lcd1.setCursor(6, 1);
lcd1.write(byte(0));
lcd1.setCursor(6, 0);
lcd1.write(byte(1));
lcd1.setCursor(7, 1);
lcd1.write(byte(0));
lcd1.setCursor(7, 0);
lcd1.write(byte(1));
lcd1.setCursor(8, 1);
lcd1.write(byte(0));
lcd1.setCursor(8, 0);
lcd1.write(byte(1));
lcd1.setCursor(9, 1);
lcd1.write(byte(0));
lcd1.setCursor(9, 0);
lcd1.write(byte(1));
lcd1.setCursor(10, 1);
lcd1.write(byte(0));
lcd1.setCursor(10, 0);
lcd1.write(byte(1));
lcd1.setCursor(11, 1);
lcd1.write(byte(0));
lcd1.setCursor(11, 0);
lcd1.write(byte(1));
lcd1.setCursor(12, 1);
lcd1.write(byte(0));
lcd1.setCursor(12, 0);
lcd1.write(byte(1));
lcd1.setCursor(13, 1);
lcd1.write(byte(0));
lcd1.setCursor(13, 0);
lcd1.write(byte(1));
lcd1.setCursor(14, 1);
lcd1.write(byte(0));
lcd1.setCursor(14, 0);
lcd1.write(byte(1));
lcd1.setCursor(15, 1);
lcd1.write(byte(2));
lcd1.setCursor(15, 0);
lcd1.write(byte(2));
}
void num1lcd1 () {
lcd1.setCursor(0,1);
lcd1.write(byte(0));
lcd1.setCursor(1,1);
lcd1.write(byte(0));
lcd1.setCursor(2,1);
lcd1.write(byte(0));
lcd1.setCursor(3,1);
lcd1.write(byte(0));
lcd1.setCursor(4,1);
lcd1.write(byte(0));
lcd1.setCursor(5,1);
lcd1.write(byte(0));
lcd1.setCursor(6,1);
lcd1.write(byte(0));
lcd1.setCursor(7,1);
lcd1.write(byte(0));
lcd1.setCursor(8,1);
lcd1.write(byte(0));
lcd1.setCursor(9,1);
lcd1.write(byte(0));
lcd1.setCursor(10,1);
lcd1.write(byte(0));
lcd1.setCursor(11,1);
lcd1.write(byte(0));
lcd1.setCursor(12,1);
lcd1.write(byte(0));
lcd1.setCursor(13,1);
lcd1.write(byte(0));
lcd1.setCursor(14,1);
lcd1.write(byte(0));
lcd1.setCursor(15,1);
lcd1.write(byte(0));
}
void num2lcd1 () {
lcd1.setCursor(0,0);
lcd1.write(byte(2)); // full
lcd1.setCursor(0, 1);
lcd1.write(byte(2));
lcd1.setCursor(1, 0);
lcd1.write(byte(1)); // half left
lcd1.setCursor(2, 0);
lcd1.write(byte(1));
lcd1.setCursor(3, 0);
lcd1.write(byte(1));
lcd1.setCursor(4, 0);
lcd1.write(byte(1));
lcd1.setCursor(5, 0);
lcd1.write(byte(1));
lcd1.setCursor(6, 0);
lcd1.write(byte(1));
lcd1.setCursor(7, 1);
lcd1.write(byte(2));
lcd1.setCursor(7, 0);
lcd1.write(byte(2));
lcd1.setCursor(8, 1);
lcd1.write(byte(0));
lcd1.setCursor(9, 1);
lcd1.write(byte(0));
lcd1.setCursor(10, 1);
lcd1.write(byte(0));
lcd1.setCursor(11, 1);
lcd1.write(byte(0));
lcd1.setCursor(12, 1);
lcd1.write(byte(0));
lcd1.setCursor(13, 1);
lcd1.write(byte(0));
lcd1.setCursor(14, 1);
lcd1.write(byte(0));
lcd1.setCursor(15, 1);
lcd1.write(byte(2));
lcd1.setCursor(15, 0);
lcd1.write(byte(2));
}
void num3lcd1 () {
lcd1.setCursor(0,0);
lcd1.write(byte(2)); // full
lcd1.setCursor(0, 1);
lcd1.write(byte(2));
lcd1.setCursor(1, 1);
lcd1.write(byte(0)); // half right
lcd1.setCursor(2, 1);
lcd1.write(byte(0));
lcd1.setCursor(3, 1);
lcd1.write(byte(0));
lcd1.setCursor(4, 1);
lcd1.write(byte(0));
lcd1.setCursor(5, 1);
lcd1.write(byte(0));
lcd1.setCursor(6, 1);
lcd1.write(byte(0));
lcd1.setCursor(7, 1);
lcd1.write(byte(2));
lcd1.setCursor(7, 0);
lcd1.write(byte(2));
lcd1.setCursor(8, 1);
lcd1.write(byte(0));
lcd1.setCursor(9, 1);
lcd1.write(byte(0));
lcd1.setCursor(10, 1);
lcd1.write(byte(0));
lcd1.setCursor(11, 1);
lcd1.write(byte(0));
lcd1.setCursor(12, 1);
lcd1.write(byte(0));
lcd1.setCursor(13, 1);
lcd1.write(byte(0));
lcd1.setCursor(14, 1);
lcd1.write(byte(0));
lcd1.setCursor(15, 1);
lcd1.write(byte(2));
lcd1.setCursor(15, 0);
lcd1.write(byte(2));
}
void num4lcd1 () {
lcd1.setCursor(0, 1);
lcd1.write(byte(0));
lcd1.setCursor(1, 1);
lcd1.write(byte(0));
lcd1.setCursor(2, 1);
lcd1.write(byte(0));
lcd1.setCursor(3, 1);
lcd1.write(byte(0));
lcd1.setCursor(4, 1);
lcd1.write(byte(0));
lcd1.setCursor(5, 1);
lcd1.write(byte(0));
lcd1.setCursor(6, 1);
lcd1.write(byte(0));
lcd1.setCursor(7, 1);
lcd1.write(byte(2));
lcd1.setCursor(7, 0);
lcd1.write(byte(2));
lcd1.setCursor(8, 0);
lcd1.write(byte(1));
lcd1.setCursor(8, 1);
lcd1.write(byte(0));
lcd1.setCursor(9, 0);
lcd1.write(byte(1));
lcd1.setCursor(9, 1);
lcd1.write(byte(0));
lcd1.setCursor(10, 0);
lcd1.write(byte(1));
lcd1.setCursor(10, 1);
lcd1.write(byte(0));
lcd1.setCursor(11, 0);
lcd1.write(byte(1));
lcd1.setCursor(11, 1);
lcd1.write(byte(0));
lcd1.setCursor(12, 0);
lcd1.write(byte(1));
lcd1.setCursor(12, 1);
lcd1.write(byte(0));
lcd1.setCursor(13, 0);
lcd1.write(byte(1));
lcd1.setCursor(13, 1);
lcd1.write(byte(0));
lcd1.setCursor(14, 0);
lcd1.write(byte(1));
lcd1.setCursor(14, 1);
lcd1.write(byte(0));
lcd1.setCursor(15, 0);
lcd1.write(byte(1));
lcd1.setCursor(15, 1);
lcd1.write(byte(0));
}
void num5lcd1 () {
lcd1.setCursor(0,0);
lcd1.write(byte(2)); // full
lcd1.setCursor(0, 1);
lcd1.write(byte(2));
lcd1.setCursor(1, 1);
lcd1.write(byte(0)); // half right
lcd1.setCursor(2, 1);
lcd1.write(byte(0));
lcd1.setCursor(3, 1);
lcd1.write(byte(0));
lcd1.setCursor(4, 1);
lcd1.write(byte(0));
lcd1.setCursor(5, 1);
lcd1.write(byte(0));
lcd1.setCursor(6, 1);
lcd1.write(byte(0));
lcd1.setCursor(7, 1);
lcd1.write(byte(2));
lcd1.setCursor(7, 0);
lcd1.write(byte(2));
lcd1.setCursor(8, 0);
lcd1.write(byte(1));
lcd1.setCursor(9, 0);
lcd1.write(byte(1));
lcd1.setCursor(10, 0);
lcd1.write(byte(1));
lcd1.setCursor(11, 0);
lcd1.write(byte(1));
lcd1.setCursor(12, 0);
lcd1.write(byte(1));
lcd1.setCursor(13, 0);
lcd1.write(byte(1));
lcd1.setCursor(14, 0);
lcd1.write(byte(1));
lcd1.setCursor(15, 1);
lcd1.write(byte(2));
lcd1.setCursor(15, 0);
lcd1.write(byte(2));
}
void num6lcd1 () {
lcd1.setCursor(0,0);
lcd1.write(byte(2)); // full
lcd1.setCursor(0, 1);
lcd1.write(byte(2));
lcd1.setCursor(1, 1);
lcd1.write(byte(0)); // half right
lcd1.setCursor(1, 0);
lcd1.write(byte(1)); // half left
lcd1.setCursor(2, 1);
lcd1.write(byte(0));
lcd1.setCursor(2, 0);
lcd1.write(byte(1));
lcd1.setCursor(3, 1);
lcd1.write(byte(0));
lcd1.setCursor(3, 0);
lcd1.write(byte(1));
lcd1.setCursor(4, 1);
lcd1.write(byte(0));
lcd1.setCursor(4, 0);
lcd1.write(byte(1));
lcd1.setCursor(5, 1);
lcd1.write(byte(0));
lcd1.setCursor(5, 0);
lcd1.write(byte(1));
lcd1.setCursor(6, 1);
lcd1.write(byte(0));
lcd1.setCursor(6, 0);
lcd1.write(byte(1));
lcd1.setCursor(7, 1);
lcd1.write(byte(2));
lcd1.setCursor(7, 0);
lcd1.write(byte(2));
lcd1.setCursor(8, 0);
lcd1.write(byte(1));
lcd1.setCursor(9, 0);
lcd1.write(byte(1));
lcd1.setCursor(10, 0);
lcd1.write(byte(1));
lcd1.setCursor(11, 0);
lcd1.write(byte(1));
lcd1.setCursor(12, 0);
lcd1.write(byte(1));
lcd1.setCursor(13, 0);
lcd1.write(byte(1));
lcd1.setCursor(14, 0);
lcd1.write(byte(1));
lcd1.setCursor(15, 1);
lcd1.write(byte(2));
lcd1.setCursor(15, 0);
lcd1.write(byte(2));
}
void num7lcd1 () {
lcd1.setCursor(0,1);
lcd1.write(byte(0));
lcd1.setCursor(1,1);
lcd1.write(byte(0));
lcd1.setCursor(2,1);
lcd1.write(byte(0));
lcd1.setCursor(3,1);
lcd1.write(byte(0));
lcd1.setCursor(4,1);
lcd1.write(byte(0));
lcd1.setCursor(5,1);
lcd1.write(byte(0));
lcd1.setCursor(6,1);
lcd1.write(byte(0));
lcd1.setCursor(7,1);
lcd1.write(byte(0));
lcd1.setCursor(8,1);
lcd1.write(byte(0));
lcd1.setCursor(9,1);
lcd1.write(byte(0));
lcd1.setCursor(10,1);
lcd1.write(byte(0));
lcd1.setCursor(11,1);
lcd1.write(byte(0));
lcd1.setCursor(12,1);
lcd1.write(byte(0));
lcd1.setCursor(13,1);
lcd1.write(byte(0));
lcd1.setCursor(14,1);
lcd1.write(byte(0));
lcd1.setCursor(15,1);
lcd1.write(byte(2));
lcd1.setCursor(15,0);
lcd1.write(byte(2));
}
void num8lcd1 () {
lcd1.setCursor(0,0);
lcd1.write(byte(2)); // full
lcd1.setCursor(0, 1);
lcd1.write(byte(2));
lcd1.setCursor(1, 1);
lcd1.write(byte(0)); // half right
lcd1.setCursor(1, 0);
lcd1.write(byte(1)); // half left
lcd1.setCursor(2, 1);
lcd1.write(byte(0));
lcd1.setCursor(2, 0);
lcd1.write(byte(1));
lcd1.setCursor(3, 1);
lcd1.write(byte(0));
lcd1.setCursor(3, 0);
lcd1.write(byte(1));
lcd1.setCursor(4, 1);
lcd1.write(byte(0));
lcd1.setCursor(4, 0);
lcd1.write(byte(1));
lcd1.setCursor(5, 1);
lcd1.write(byte(0));
lcd1.setCursor(5, 0);
lcd1.write(byte(1));
lcd1.setCursor(6, 1);
lcd1.write(byte(0));
lcd1.setCursor(6, 0);
lcd1.write(byte(1));
lcd1.setCursor(7, 1);
lcd1.write(byte(2));
lcd1.setCursor(7, 0);
lcd1.write(byte(2));
lcd1.setCursor(8, 1);
lcd1.write(byte(0));
lcd1.setCursor(8, 0);
lcd1.write(byte(1));
lcd1.setCursor(9, 1);
lcd1.write(byte(0));
lcd1.setCursor(9, 0);
lcd1.write(byte(1));
lcd1.setCursor(10, 1);
lcd1.write(byte(0));
lcd1.setCursor(10, 0);
lcd1.write(byte(1));
lcd1.setCursor(11, 1);
lcd1.write(byte(0));
lcd1.setCursor(11, 0);
lcd1.write(byte(1));
lcd1.setCursor(12, 1);
lcd1.write(byte(0));
lcd1.setCursor(12, 0);
lcd1.write(byte(1));
lcd1.setCursor(13, 1);
lcd1.write(byte(0));
lcd1.setCursor(13, 0);
lcd1.write(byte(1));
lcd1.setCursor(14, 1);
lcd1.write(byte(0));
lcd1.setCursor(14, 0);
lcd1.write(byte(1));
lcd1.setCursor(15, 1);
lcd1.write(byte(2));
lcd1.setCursor(15, 0);
lcd1.write(byte(2));
}
void num9lcd1 () {
lcd1.setCursor(0, 0);
lcd1.write(byte(2));
lcd1.setCursor(0, 1);
lcd1.write(byte(2));
lcd1.setCursor(1, 1);
lcd1.write(byte(0));
lcd1.setCursor(2, 1);
lcd1.write(byte(0));
lcd1.setCursor(3, 1);
lcd1.write(byte(0));
lcd1.setCursor(4, 1);
lcd1.write(byte(0));
lcd1.setCursor(5, 1);
lcd1.write(byte(0));
lcd1.setCursor(6, 1);
lcd1.write(byte(0));
lcd1.setCursor(7, 1);
lcd1.write(byte(2));
lcd1.setCursor(7, 0);
lcd1.write(byte(2));
lcd1.setCursor(8, 0);
lcd1.write(byte(1));
lcd1.setCursor(8, 1);
lcd1.write(byte(0));
lcd1.setCursor(9, 0);
lcd1.write(byte(1));
lcd1.setCursor(9, 1);
lcd1.write(byte(0));
lcd1.setCursor(10, 0);
lcd1.write(byte(1));
lcd1.setCursor(10, 1);
lcd1.write(byte(0));
lcd1.setCursor(11, 0);
lcd1.write(byte(1));
lcd1.setCursor(11, 1);
lcd1.write(byte(0));
lcd1.setCursor(12, 0);
lcd1.write(byte(1));
lcd1.setCursor(12, 1);
lcd1.write(byte(0));
lcd1.setCursor(13, 0);
lcd1.write(byte(1));
lcd1.setCursor(13, 1);
lcd1.write(byte(0));
lcd1.setCursor(14, 0);
lcd1.write(byte(1));
lcd1.setCursor(14, 1);
lcd1.write(byte(0));
lcd1.setCursor(15, 0);
lcd1.write(byte(2));
lcd1.setCursor(15, 1);
lcd1.write(byte(2));
}
void num0lcd2 () {
lcd2.setCursor(0,0);
lcd2.write(byte(2)); // full
lcd2.setCursor(0, 1);
lcd2.write(byte(2));
lcd2.setCursor(1, 1);
lcd2.write(byte(0)); // half right
lcd2.setCursor(1, 0);
lcd2.write(byte(1)); // half left
lcd2.setCursor(2, 1);
lcd2.write(byte(0));
lcd2.setCursor(2, 0);
lcd2.write(byte(1));
lcd2.setCursor(3, 1);
lcd2.write(byte(0));
lcd2.setCursor(3, 0);
lcd2.write(byte(1));
lcd2.setCursor(4, 1);
lcd2.write(byte(0));
lcd2.setCursor(4, 0);
lcd2.write(byte(1));
lcd2.setCursor(5, 1);
lcd2.write(byte(0));
lcd2.setCursor(5, 0);
lcd2.write(byte(1));
lcd2.setCursor(6, 1);
lcd2.write(byte(0));
lcd2.setCursor(6, 0);
lcd2.write(byte(1));
lcd2.setCursor(7, 1);
lcd2.write(byte(0));
lcd2.setCursor(7, 0);
lcd2.write(byte(1));
lcd2.setCursor(8, 1);
lcd2.write(byte(0));
lcd2.setCursor(8, 0);
lcd2.write(byte(1));
lcd2.setCursor(9, 1);
lcd2.write(byte(0));
lcd2.setCursor(9, 0);
lcd2.write(byte(1));
lcd2.setCursor(10, 1);
lcd2.write(byte(0));
lcd2.setCursor(10, 0);
lcd2.write(byte(1));
lcd2.setCursor(11, 1);
lcd2.write(byte(0));
lcd2.setCursor(11, 0);
lcd2.write(byte(1));
lcd2.setCursor(12, 1);
lcd2.write(byte(0));
lcd2.setCursor(12, 0);
lcd2.write(byte(1));
lcd2.setCursor(13, 1);
lcd2.write(byte(0));
lcd2.setCursor(13, 0);
lcd2.write(byte(1));
lcd2.setCursor(14, 1);
lcd2.write(byte(0));
lcd2.setCursor(14, 0);
lcd2.write(byte(1));
lcd2.setCursor(15, 1);
lcd2.write(byte(2));
lcd2.setCursor(15, 0);
lcd2.write(byte(2));
}
void num1lcd2 () {
lcd2.setCursor(0,1);
lcd2.write(byte(0));
lcd2.setCursor(1,1);
lcd2.write(byte(0));
lcd2.setCursor(2,1);
lcd2.write(byte(0));
lcd2.setCursor(3,1);
lcd2.write(byte(0));
lcd2.setCursor(4,1);
lcd2.write(byte(0));
lcd2.setCursor(5,1);
lcd2.write(byte(0));
lcd2.setCursor(6,1);
lcd2.write(byte(0));
lcd2.setCursor(7,1);
lcd2.write(byte(0));
lcd2.setCursor(8,1);
lcd2.write(byte(0));
lcd2.setCursor(9,1);
lcd2.write(byte(0));
lcd2.setCursor(10,1);
lcd2.write(byte(0));
lcd2.setCursor(11,1);
lcd2.write(byte(0));
lcd2.setCursor(12,1);
lcd2.write(byte(0));
lcd2.setCursor(13,1);
lcd2.write(byte(0));
lcd2.setCursor(14,1);
lcd2.write(byte(0));
lcd2.setCursor(15,1);
lcd2.write(byte(0));
}
void num2lcd2 () {
lcd2.setCursor(0,0);
lcd2.write(byte(2)); // full
lcd2.setCursor(0, 1);
lcd2.write(byte(2));
lcd2.setCursor(1, 0);
lcd2.write(byte(1)); // half left
lcd2.setCursor(2, 0);
lcd2.write(byte(1));
lcd2.setCursor(3, 0);
lcd2.write(byte(1));
lcd2.setCursor(4, 0);
lcd2.write(byte(1));
lcd2.setCursor(5, 0);
lcd2.write(byte(1));
lcd2.setCursor(6, 0);
lcd2.write(byte(1));
lcd2.setCursor(7, 1);
lcd2.write(byte(2));
lcd2.setCursor(7, 0);
lcd2.write(byte(2));
lcd2.setCursor(8, 1);
lcd2.write(byte(0));
lcd2.setCursor(9, 1);
lcd2.write(byte(0));
lcd2.setCursor(10, 1);
lcd2.write(byte(0));
lcd2.setCursor(11, 1);
lcd2.write(byte(0));
lcd2.setCursor(12, 1);
lcd2.write(byte(0));
lcd2.setCursor(13, 1);
lcd2.write(byte(0));
lcd2.setCursor(14, 1);
lcd2.write(byte(0));
lcd2.setCursor(15, 1);
lcd2.write(byte(2));
lcd2.setCursor(15, 0);
lcd2.write(byte(2));
}
void num3lcd2 () {
lcd2.setCursor(0,0);
lcd2.write(byte(2)); // full
lcd2.setCursor(0, 1);
lcd2.write(byte(2));
lcd2.setCursor(1, 1);
lcd2.write(byte(0)); // half right
lcd2.setCursor(2, 1);
lcd2.write(byte(0));
lcd2.setCursor(3, 1);
lcd2.write(byte(0));
lcd2.setCursor(4, 1);
lcd2.write(byte(0));
lcd2.setCursor(5, 1);
lcd2.write(byte(0));
lcd2.setCursor(6, 1);
lcd2.write(byte(0));
lcd2.setCursor(7, 1);
lcd2.write(byte(2));
lcd2.setCursor(7, 0);
lcd2.write(byte(2));
lcd2.setCursor(8, 1);
lcd2.write(byte(0));
lcd2.setCursor(9, 1);
lcd2.write(byte(0));
lcd2.setCursor(10, 1);
lcd2.write(byte(0));
lcd2.setCursor(11, 1);
lcd2.write(byte(0));
lcd2.setCursor(12, 1);
lcd2.write(byte(0));
lcd2.setCursor(13, 1);
lcd2.write(byte(0));
lcd2.setCursor(14, 1);
lcd2.write(byte(0));
lcd2.setCursor(15, 1);
lcd2.write(byte(2));
lcd2.setCursor(15, 0);
lcd2.write(byte(2));
}
void num4lcd2 () {
lcd2.setCursor(0, 1);
lcd2.write(byte(0));
lcd2.setCursor(1, 1);
lcd2.write(byte(0));
lcd2.setCursor(2, 1);
lcd2.write(byte(0));
lcd2.setCursor(3, 1);
lcd2.write(byte(0));
lcd2.setCursor(4, 1);
lcd2.write(byte(0));
lcd2.setCursor(5, 1);
lcd2.write(byte(0));
lcd2.setCursor(6, 1);
lcd2.write(byte(0));
lcd2.setCursor(7, 1);
lcd2.write(byte(2));
lcd2.setCursor(7, 0);
lcd2.write(byte(2));
lcd2.setCursor(8, 0);
lcd2.write(byte(1));
lcd2.setCursor(8, 1);
lcd2.write(byte(0));
lcd2.setCursor(9, 0);
lcd2.write(byte(1));
lcd2.setCursor(9, 1);
lcd2.write(byte(0));
lcd2.setCursor(10, 0);
lcd2.write(byte(1));
lcd2.setCursor(10, 1);
lcd2.write(byte(0));
lcd2.setCursor(11, 0);
lcd2.write(byte(1));
lcd2.setCursor(11, 1);
lcd2.write(byte(0));
lcd2.setCursor(12, 0);
lcd2.write(byte(1));
lcd2.setCursor(12, 1);
lcd2.write(byte(0));
lcd2.setCursor(13, 0);
lcd2.write(byte(1));
lcd2.setCursor(13, 1);
lcd2.write(byte(0));
lcd2.setCursor(14, 0);
lcd2.write(byte(1));
lcd2.setCursor(14, 1);
lcd2.write(byte(0));
lcd2.setCursor(15, 0);
lcd2.write(byte(1));
lcd2.setCursor(15, 1);
lcd2.write(byte(0));
}
void num5lcd2 () {
lcd2.setCursor(0,0);
lcd2.write(byte(2)); // full
lcd2.setCursor(0, 1);
lcd2.write(byte(2));
lcd2.setCursor(1, 1);
lcd2.write(byte(0)); // half right
lcd2.setCursor(2, 1);
lcd2.write(byte(0));
lcd2.setCursor(3, 1);
lcd2.write(byte(0));
lcd2.setCursor(4, 1);
lcd2.write(byte(0));
lcd2.setCursor(5, 1);
lcd2.write(byte(0));
lcd2.setCursor(6, 1);
lcd2.write(byte(0));
lcd2.setCursor(7, 1);
lcd2.write(byte(2));
lcd2.setCursor(7, 0);
lcd2.write(byte(2));
lcd2.setCursor(8, 0);
lcd2.write(byte(1));
lcd2.setCursor(9, 0);
lcd2.write(byte(1));
lcd2.setCursor(10, 0);
lcd2.write(byte(1));
lcd2.setCursor(11, 0);
lcd2.write(byte(1));
lcd2.setCursor(12, 0);
lcd2.write(byte(1));
lcd2.setCursor(13, 0);
lcd2.write(byte(1));
lcd2.setCursor(14, 0);
lcd2.write(byte(1));
lcd2.setCursor(15, 1);
lcd2.write(byte(2));
lcd2.setCursor(15, 0);
lcd2.write(byte(2));
}
1.
https://aprendiendoarduino.wordpress.com/2017/06/29/proyecto-sistema-de-
alarma/
https://github.com/jecrespo/Aprendiendo-Arduino-
Proyectos/commit/acbd10363b36d0454a772c8f8998193a19122c38
+#include
<MsTimer2.h>
+#define DEBUG 1
//ESTADOS
+#define NORMAL 0
+#define PRE_ALARMA 1
+#define ALARMA 2
+//PINES
+#define PIN_TILT 2
+#define PIN_LED 3
+#define PIN_BOTON 4
+#define PIN_BUZZER 5
+#define PIN_LDR A0
+
+//PINES TECLADO
+//PASSWORD
+//Variables temporales
void setup() {
+#if DEBUG
+ Serial.begin(9600);
+ Serial.println("Inicializando...");
+#endif
+ pinMode(PIN_TILT, INPUT_PULLUP);
+ pinMode(PIN_LED, OUTPUT);
+ pinMode(PIN_BOTON, INPUT_PULLUP);
+ //inicializo el estado
+ comprueba_tilt(NORMAL);
+ comprueba_ldr(NORMAL);
+#if DEBUG
+ Serial.println("Sistema en Servicio.");
+ Serial.println("-----------------");
+#endif
void loop() {
- comprueba_flanco_tilt();
- comprueba_ldr();
- estado();
+ switch (estado) {
+ case NORMAL:
+ comprueba_tilt(NORMAL);
+ comprueba_ldr(NORMAL);
+ break;
+ case PRE_ALARMA:
+ lee_teclado();
+ break;
+ case ALARMA:
+ if (!comprueba_tilt(ALARMA) &&
!comprueba_ldr(ALARMA) && comprueba_boton())
+ actualiza_alarma(NORMAL);
+ break;
+ }
+#if DEBUG
+ imprime_valiables();
+#endif
+}
+#if DEBUG
+ //NORMAL
+ actualiza_alarma(PRE_ALARMA);
+ return 1;
+ }
+ //ALARMA
+ return 1;
+ return 0;
-void comprueba_flanco_tilt(){
+#if DEBUG
+#endif
+ //NORMAL
+ if (tiempo_deteccion == 0)
+ tiempo_deteccion = millis();
+ tiempo_deteccion = 0;
+ actualiza_alarma(PRE_ALARMA);
+ }
+#if DEBUG
+ if (tiempo_deteccion > 0)
+ Serial.println("tiempo_deteccion = " +
(String)(millis() - tiempo_deteccion));
+#endif
+ return 1;
+ }
+ tiempo_deteccion = 0;
+ return 0;
+ }
+ //ALARMA
+ return 1;
+ return 0;
+}
+void lee_teclado() {
+ tiempo_prealarma = 0;
+ actualiza_alarma(ALARMA);
+ return 0;
+ }
+#if DEBUG
+ Serial.println("tiempo_prealarma = " +
(String)(millis() - tiempo_prealarma));
+ Serial.println("Leo Teclado");
+#endif
+ //tiempo_prealarma = 0;
+ //actualiza_alarma(ALARMA);
-void comprueba_ldr(){
+boolean comprueba_boton() {
+#if DEBUG
+ Serial.println("valor_boton = " +
(String)valor_boton);
+#endif
+ if (valor_boton == 0) //INPUT_PULLUP
+ return 1;
+ else
+ return 0;
-void estado(){
+ estado = valor_nuevo_estado;
+ switch (estado) {
+ case NORMAL:
+ Serial.println("ENTRO EN ESTADO NORMAL");
+ digitalWrite(PIN_LED, LOW);
+ noTone(PIN_BUZZER);
+ break;
+ case PRE_ALARMA:
+ tiempo_prealarma = millis();
+ MsTimer2::start();
+ break;
+ case ALARMA:
+ MsTimer2::stop();
+ digitalWrite(PIN_LED, LOW);
+ tone(PIN_BUZZER, NOTE_C5);
+ envia_SMS();
+ break;
+ }
}
+void envia_SMS() {
+#if DEBUG
+ Serial.println("Mando SMS");
+#endif
+}
+void blink()
+{
+#if DEBUG
+ Serial.println("Blink");
+#endif
+ digitalWrite(PIN_LED, output);
+ output = !output;
+}
+
+void imprime_valiables() { //para debug
+ Serial.println("-----------------");
+ Serial.print("Estado = ");
+ switch (estado) {
+ case NORMAL:
+ Serial.println("NORMAL");
+ break;
+ case PRE_ALARMA:
+ Serial.println("PRE_ALARMA");
+ break;
+ case ALARMA:
+ Serial.println("ALARMA");
+ break;
+ }
+}
2.
https://fabricadigital.org/2015/11/como-hacer-una-alarma-con-un-sensor-de-
movimiento-pir-un-buzzer-y-un-led/
void setup() {
pinMode(4,INPUT); // PIR
pinMode(10,OUTPUT); // LED
pinMode(6,OUTPUT); // Buzzer
void loop() {
if (digitalRead(4) == HIGH) {
digitalWrite(10, HIGH);
digitalWrite(6, HIGH);
delay(500);
digitalWrite(10, LOW);
digitalWrite(6, LOW);
delay(500);
} else {
digitalWrite(10, LOW);
digitalWrite(6, LOW);