Diversión Shway pantalla (21 / 21 paso)

Paso 21: Mi programa

/*

11/11/2012 Rayo McQueen

Línea LCD 1 día y hora
Lecturas temporales de la línea 2 LCD

6 botones en analógico A0
Cualquier activación de botón se enciende luz de 2 minutos posterior.
El fresco de la configuración del botón es
cualquier botón puede configurarse al botón 1, 2, 3, 4, 5 o 6.

Se utilizan sensores de temperatura LM335 y LM334Z.
Compensación de temperatura es regulable.

*/
//
//
Const int
//
const int lcd_datapin = 6; 74HC164 pin 1
const int lcd_clk = 5; 74HC164 pin 8
const int lcd_E = 4; Línea LCD E
const int lcd_RS = 3; Línea RS del LCD
const int luz = 2; / / salida de la luz trasera
//
Materia análoga
//
A0-botones
A1 - en el tablero sensor de temperatura.
A2 - interior sensor de temperatura.
A3 - fuera sensor de temperatura.
//
//
COSAS DE RELOJ
NO HAY NÚMEROS NEGATIVOS
time_begin largo sin firmar;
time_duration largo sin firmar;
time_remain largo sin firmar;
time_val largo sin firmar;
unsigned int time_seconds = 0; / / almacena el número de segundos
unsigned int time_minutes = 0; / / almacena el número de minutos. El
reloj se iniciará en el número de minutos guardadas aquí reset.
unsigned int time_hours = 12; / / almacena el número de horas. El reloj
se iniciará en el número de horas guardadas aquí de descanso.
unsigned int time_days = 0; / / almacena el número de días
Utilizado para contar a un evento determinado.
unsigned int event_seconds1 = 0; / / almacenamiento de segundos contar
//
//
Cosas de LCD
//
int lcd_C = 0; Carácter de ser cambiado de puesto
int lcd_D = 0; Carácter de ser cambiado de puesto
int lcd_N = 0; Número de caracteres a enviar a la lcd
int lcd_i = 0; Utilizado para la colocación
int lcd_set = 0; / / se utiliza para almacenar que configuración para obtener
int lcd_A = 0; / / solía elegir la aray a utilizar
int lcd_Z = 0; Utilizado en char lcd prueba
//
//
Utilizado por cracker
//
int val1000s = 0; / / registro para mantener cuenta de 1000
int val100s = 0; / / registro para la cuenta 100
int val10s = 0; / / registro para mantener el conteo de 10
int val1s = 0; / / registro de 1 cuenta
int test_test = 0; / / registro para almacenar el número de pruebas y la hora también
//
Utilizado para las lecturas de sensor
sensor flotador = 0; / / almacenamiento de información para el nivel de sensor
copia de int = 0; / / copia de lo que ponga en él y tiempo también
//
int back_lit = 0; / / luz de fondo encendido/apagado
//
//
//
COSAS DE BOTÓN
int btn_read = 0; / / lectura de la línea analógica
int btn_read2 = 0; / / la copia de la lectura
int btn_pressed = 0; / / botón fue presionado
int btn_number = 1; / / siempre comenzar con el botón #1
int btn_copy = 0; / / copia del botón para con_fig.
int bucle = 0; / / para mi los bucles
//*****************
Tienda la gama alta y baja de un valor analógico de botones
//
int btn_1hi; / / alta gama botón #1
int btn_1lo; / / botón #1 de gama baja
int btn_2hi; / / botón 2 alta gama
int btn_2lo; / / botón 2 baja gama
int btn_3hi; / / tecla #3 alta gama
int btn_3lo; / / tecla #3 gama baja
int btn_4hi; / / tecla #4 alta gama
int btn_4lo; / / tecla #4 baja gama
int btn_5hi; / / tecla #5 alta gama
int btn_5lo; / / tecla #5 baja gama
int btn_6hi; / / alta gama botón #6
int btn_6lo; / / botón #6 baja gama
//
//
int offset_sensor_1 = 257; / / Start offset en voltios 2,57 = LM334Z
int offset_sensor_2 = 273; / / Start offset en voltios 2,73
int offset_sensor_3 = 273; / / Start offset en voltios 2,73
int offset_A = 0; / / 0 no = ajustes.
1 = sensor 1 ajuste.
2 = sensor 2 ajustar.
3 = 3 sensor de ajuste.
LM335 2,73 voltios de salida en cero grados C
LM334Z aproximadamente 2.57 voltios de salida en cero grados C
//
//
ARREGLOS DE DISCOS ***
Conteo de arreglos de discos se inicia en 0 no 1 y va para arriba
//
carácter de 16-24 2 línea lcd
int aray_set_up [] = {}
56, 12, 6, 1}; Personajes de configuración LCD
//
Puntos de inicio para el LCD
int aray_lines [] = {}
132 = 5 carácter de la posición de inicio izquierdo, línea 1
196 = 5 carácter de la posición de inicio izquierdo, línea 2
128 = línea 1
192 = línea 2
128, 192, 132, 196};
//
Utiliza un espacio en blanco en el primer lugar para no mostrar la
anteriores ceros.
int aray_hunds [] = {}
' ', '1', '2', '3', '4', '5', '6', '7', '8', '9', };
//
"0" en la primera ubicación con el fin de mostrar la
cualquier precceding cero
int aray_tens [] = {}
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', };
//
La primera matriz por lo que yo puedo poner el nombre en la pantalla lcd al inicio
Matriz sólo aparece al principio para arriba.
lcd_Z = qué matriz utilizar
int aray0 [] = {}
'F', 'u', 'n', ' ', 'S', 'h', 'w', 'a', 'y', ' ', 'D', 'i', 's', 'p', 'l', 'a', 'y', ' ', ' ', ' ', ' ', ' ', ' ', ' ' };
//
Sólo 4 de estos personajes son enviados pero su izquierda en el 5 sin ejecuta más
int aray1 [] = {}
' ', 'I', 'n', ' ', ' ' };
Sólo 4 de estos personajes son enviados pero su izquierda en el 5 sin ejecuta más
int aray2 [] = {}
'O', 'u', 't', ' ', ' ' };
Dejo a continuación para espacios en blanco
int aray3 [] = {}
' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' };
No utilizados aún
int aray4 [] = {}
' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' };
El tiempo de palabra
int aray5 [] = {}
'T', 'i', 'm', 'e', ' ' };
No utilizados aún
int aray6 [] = {}
' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '    , ' ', ' ', ' ', ' ', ' ', ' ' };
//
ARREGLOS DE DISCOS PARA LOS DÍAS DE LA SEMANA
//
int aray7 [] = {}
'M', 'o', 'n', ' ', ' ', ' ' };
//
int aray8 [] = {}
'T', 'u', 'e', ' ', ' ', ' ' };
//
int aray9 [] = {}
'W', 'e', 'd', ' ', ' ', ' ' };
//
int aray10 [] = {}
'T', 'h', 'u', ' ', ' ', ' ' };
//
int aray11 [] = {}
'F', 'r', 'i', ' ', ' ', ' ' };
//
int aray12 [] = {}
'S', 'a', 't', ' ', ' ', ' ' };
//
int aray13 [] = {}
'S', 'u', 'n', ' ', ' ', ' ' };
//
MATRICES PARA BOTÓN CONFIG
//
int aray14 [] = {}
'B', 'u', 't', 't', 'o', 'n', ' ', 'C', 'o', 'n', 'f', 'i', 'g', '.', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' };
//
int aray15 [] = {}
'P', 'r', 'e', 's', 's', ' ', ' ', ' ', ' ', ' ' };
//
int aray16 [] = {}
'R', 'e', 'l', 'e', 'a', 's', 'e', ' ', ' ', ' ' };
//
int aray17 [] = {}
' ', 'F', 'a', 'i', 'l', 'e', 'd', ' ', ' ', ' ' };
//
int aray18 [] = {}
' ', 'S', 'e', 't', ' ' };
//
//
//
void setup() {}
pinMode (lcd_datapin, salida); Definir como salida
pinMode (lcd_clk, salida); Definir como salida
pinMode (lcd_E, salida); Definir (línea E) como salida
pinMode (lcd_RS, salida); Definir (línea RS) como salida
pinMode (ligero, salida); Definir (luz trasera) como salida
//
digitalWrite (lcd_E, HIGH); / / traer la línea de control de lcd alta
digitalWrite (lcd_RS, HIGH); / / traer la línea de control de lcd alta
//
digitalWrite (light, LOW); / / enciende la luz para pantalla trasera
//
Instalación de LCD
lcd_init(); / / inicializar el lcd para el uso
//
lcd_set = 0; / / primera linea
lcd_line();
Delay(5);
Añadido para displays de líneas una pantalla ***
Sólo se muestra una vez al principio para arriba ***
//
lcd_Z = 0; / / una cadena de caracteres de la línea de LCD
lcd_N = 24; / / enviar todos los 24 caracteres
lcd_char();
//
Delay(10000); / / demora 10 segundos para que pueda ver el nombre del programa.
//
Dejar libre la línea de la LCD antes de escribir en él por lo que no queda más
lcd_set = 0; / / LCD línea uno
//
lcd_line_clear(); / / borra la línea de lcd para espacios en blanco
//
//
Configurar los botones en la línea analógica
Esto se hace una vez antes del bucle principal
//
btn_config(); / / rutina de configuración de botón.
//
digitalWrite (luz, HIGH); / / apaga la luz para pantalla trasera
event_seconds1 = 0; / / claro el evento de segundos registrarse.
back_lit = 0; / / borrar el registro de luz de fondo.
//
/////////////////
FIN DE CONFIGURAR / /
/////////////////
//
}
//
////////////////////////
INICIO PRINCIPAL LAZO / /
////////////////////////
//
//
void loop() {}
//
Debe hacerse al principio para el reloj funcionan bien.
time_begin = millis(); / / lugar en el principio
//
lcd_timeDisp(); / / Mostrar el día y hora en la línea 1
//
lcd_tempDisp(); / / Mostrar la temp en/fuera de línea 2
//
//**************************
TIEMPO MATERIAL PARA ACTUALIZAR REGISTROS
//
time_val = (time_remain + time_duration);
Si el tiempo a través de (intervalo) ha sido menos de un segundo
Mantenga la adición encima de.
Si (time_val < 1000) {}
time_remain = time_val;
}
Si el tiempo a través de (intervalo) ha sido más de un segundo
contar cuántos segundos.
Si (time_val > = 1000) {}
mientras que (time_val > = 1000) {}
time_val = time_val - 1000;
time_seconds ++;
event_seconds1 ++; / / incrementar event_seconds1 por uno
}
time_remain = time_val;
}
//
Si (time_seconds > = 60) {}
time_minutes ++; / / incrementar minutos por una
time_remain = (time_remain + 1); / / añadido por pérdida de señal de tiempo en el tiempo.
time_seconds = (time_seconds - 60);
}
Si (time_minutes > = 60) {}
time_hours ++; / / incrementar por 1
time_minutes = (time_minutes - 60);
}
Si (time_hours > = 24) {}
time_days ++; / / incrementar por 1
time_hours = (time_hours - 24);
}
Si (time_days > = 7) {}
time_days = (time_days - 7);
}
//
//
Comprobar si se presiona un botón.
No Debounce fue lastimado en la realización de este programa.
//
btn_read = analogRead(A0);
Si (btn_read > 50 & & back_lit == 0) {}
digitalWrite (light, LOW); / / enciende la luz trasera para cualquier
activación del botón. Hacer cualquier acción de botón aún.
event_seconds1 = 0; / / borrar el generador del evento de segundos.
back_lit = 1; / / la pulsación siguiente es válido para hacer algo.
Delay(2000); / / antes de buscar otro botón.
//
}
//
//
btn_read = analogRead(A0); / /
Si (btn_read > 50 & & back_lit == 1) {}
//
Lectura válida es algo grande de 50.
Una lectura válida y luz trasera = 1 para hacer las cosas de botón.
50 es mi de gama (desactivar) para botones mal.
Un botón es apretado.
button_pressed (); //Figure que se
}
Compruebe para ver si se suelta un botón.
btn_read = analogRead(A0); / /
Si (btn_read == 0 & & back_lit == 1) {}
Se suelta el botón.
button_released(); / / averiguar que uno
}
//
Temporizador para apagar la luz trasera
Si (event_seconds1 > = 120) {}
digitalWrite (luz, HIGH); / / apaga la luz trasera.
back_lit = 0; / / Borrar registro para LCD luz de fondo.
offset_A = 0; / / Borrar registro para compensar temps.
}
//
//
Delay(100); / / para la estabilidad
//
//************************************
ESTO VA EN EL EXTREMO DE LA CAÑERÍA DE
Error corrige cuando rollos de millis
Simplemente establece dos lecturas a 0 y vuelve a.
Si (millis() < time_begin) {}
time_duration = 0; / / colocar al final
time_begin = 0; / / lugar en final
}
//
Si (millis() > time_begin) {}
time_duration = (millis() - time_begin) ;// lugar al final
}
//
/////////////////////////
FIN DE BUCLE PRINCIPAL / /
/////////////////////////
//
}
//
//
//
//
//
//*********************
RUTINAS DE INICIO **
//*********************
//
//
/////////////////////
RUTINAS DE LCD / /
/////////////////////
//
//
Rutina para inicializar el lcd.
//
void lcd_init() {}
digitalWrite (lcd_E, LOW); / / borrar la línea E
digitalWrite (lcd_RS, LOW); / / borrar línea RS
delayMicroseconds(125); / / retraso más largo entonces necesario pero funciona
para (int lcd_i = 0; lcd_i < 4; lcd_i ++) {}
//
lcd_C = (aray_set_up[lcd_set]);
//
shiftOut (lcd_datapin, lcd_clk, MSBFIRST, lcd_C);
E_line();
lcd_set = lcd_set + 1;
}
Delay(5);
}
//
//**********
Rutina para elegir que información de la línea debe ser exhibido en.
lcd_set = 0 para la línea uno.
lcd_set = 1 para la línea dos.
lcd_set debe establecerse antes de llegar aquí.
//
void lcd_line() {}
lcd_C = (aray_lines[lcd_set]); aray_lines [lcd_set] si lcd_set = 0 = línea uno
aray_lines [lcd_set] si lcd_set = 1 = línea dos.
digitalWrite (lcd_E, LOW); Línea E inferior
digitalWrite (lcd_RS, LOW); Línea inferior de RS
delayMicroseconds(125); Pequeña demora
//
shiftOut (lcd_datapin, lcd_clk, MSBFIRST, lcd_C);
E_line();
digitalWrite (lcd_RS, HIGH);
delayMicroseconds(125);
}
//
//**********
Rutina para enviar caracteres a la pantalla.
lcd_N debe ser cargado con el número de caracteres a enviar
antes de llegar aquí.
//
void lcd_char() {}
lcd_D = 0;
//
Ajustar lcd_N para el número de caracteres a enviar
para (lcd_i = 0; lcd_i < lcd_N; lcd_i ++) {}
//
interruptor (lcd_Z) {}
caso 0: / / 1 º char string Fun_Shway_Display
lcd_A = (aray0[lcd_D]);
rotura;
caso 1: / 2 char cadena _In_
lcd_A = (aray1[lcd_D]);
rotura;
caso 2: / 3 char cadena Out_
lcd_A = (aray2[lcd_D]);
rotura;
caso 3: / 4 cadena char utiliza cortes de
lcd_A = (aray3[lcd_D]);
rotura;
caso 4: / / 5 cadena char no utilizado todavía. espacios en blanco.
lcd_A = (aray4[lcd_D]);
rotura;
caso 5: / / char 6 cuerdas Time_
lcd_A = (aray5[lcd_D]);
rotura;
caso 6: / / 7 string char no utilizado todavía. Espacios en blanco.
lcd_A = (aray6[lcd_D]);
rotura;
caso 7: / / 8 char cadena. Mon_
lcd_A = (aray7[lcd_D]);
rotura;
caso 8: / / 9 de char a string. Tue_
lcd_A = (aray8[lcd_D]);
rotura;
caso 9: / / 10 char cadena. Wed_
lcd_A = (aray9[lcd_D]);
rotura;
caso 10: / / 11 char cadena. Thu_
lcd_A = (aray10[lcd_D]);
rotura;
caso 11: / / 12 de char a string. Vie_
lcd_A = (aray11[lcd_D]);
rotura;
caso 12: / / 13 de char a string. Sat_
lcd_A = (aray12[lcd_D]);
rotura;
caso 13: / / 14 de char a string. Sun_
lcd_A = (aray13[lcd_D]);
rotura;
caso 14: / / 15 de char a string. Button_Config. _
lcd_A = (aray14[lcd_D]);
rotura;
caso 15: / / 16 char cadena. Press_
lcd_A = (aray15[lcd_D]);
rotura;
caso 16: / / 17 char cadena. Release_
lcd_A = (aray16[lcd_D]);
rotura;
caso 17: / / 18 de char a string. _Failed_
lcd_A = (aray17[lcd_D]);
rotura;
caso 18: / / 19 char cadena. _Set_
lcd_A = (aray18[lcd_D]);
rotura;
}
//
shiftOut (lcd_datapin, lcd_clk, MSBFIRST, lcd_A);
E_line();
lcd_D = lcd_D + 1;
}
}
//
//**********
La rutina es para la prueba de registro.
lcd_A debe establecerse en qué enviar antes de llegar aquí
lcd_A puede = val1000s o val100s
thous_out los resultados en un if en blanco el primer número = 0
//
void thous_out() {}
shiftOut (lcd_datapin, lcd_clk, MSBFIRST, aray_hunds[lcd_A]);
E_line();
//
}
//
//**********
La rutina es para la prueba de registro.
lcd_A debe establecerse antes de llegar aquí.
lcd_A puede = val10s o val1s
tens_out resultados adentro un cero si el primer número = 0
//
void tens_out() {}
shiftOut (lcd_datapin, lcd_clk, MSBFIRST, aray_tens[lcd_A]);
E_line();
//
}
//
//**********
Rutina para el envío de caracteres individuales para la pantalla lcd
ejemplo ":" utiliza en la separación de horas a minutos
//
void car_out() {}
shiftOut (lcd_datapin, lcd_clk, MSBFIRST, lcd_A); Esto se establece en
E_line();
//
}
//
//**********
Rutina para hacer la línea E de la pantalla lcd
//
void E_line() {}
digitalWrite (lcd_E, HIGH);
delayMicroseconds(1);
digitalWrite (lcd_E, LOW);
delayMicroseconds(125);
}
//
//**********
Rutina para enviar los espacios en blanco a la pantalla lcd.
lcd_set debe establecerse antes de llegar aquí.
lcd_set = 0; //lcd línea uno
lcd_set = 1; //lcd línea dos
//
void lcd_line_clear() {}
Dejar libre la línea de la lcd antes de escribir en él
lcd_line();
Delay(5);
//
lcd_Z = 3; / / cadena de caracteres de espacios
lcd_N = 24; / / enviar todos los 24 caracteres
lcd_char();
Delay(5);
//
}
//
//**********
Rutina para mostrar la hora en la pantalla LCD.
Tiempo se muestra en la primera línea.
//
void lcd_timeDisp() {}
//
lcd_set = 0; / / LCD línea uno
lcd_line();
Delay(5);
//
lcd_Z = (time_days + 7); / / cadena para el día de la semana
Más 7 es para saltar sobre las cadenas de caracteres de días no
lcd_N = 4; / / enviar 4 caracteres = día más espacio
lcd_char();
//
test_test = time_hours; / / hacer una copia para pruebas
Cracker(); / / salir horas
//
lcd_A = val10s; / / ahora tiene los 10s en la hora
thous_out(); / / enviar a un espacio en blanco si no hay decenas
//
lcd_A = val1s; / / ahora tiene los 1s en la hora
tens_out(); / / enviar el número de 1s en hora
//
//
lcd_A = ':'; / /
car_out(); / / enviar un caracter individual
//
//
test_test = time_minutes; / / hacer una copia para pruebas
Cracker(); / / salir minutos.
//
lcd_A = val10s; / / ahora tiene los 10s en el Acta.
tens_out(); / / enviar el número de 10s en el Acta.
//
lcd_A = val1s; / / ahora tiene el 1s en el Acta.
tens_out(); / / enviar el número de 1s en el Acta.
//
lcd_A = ' '; / / Añadir un espacio
car_out(); / / enviar un caracter individual.
//
test_test = offset_A; / / hacer una copia de prueba.
Cracker(); Salir registro.
//
lcd_A = val1s; / / ahora tiene el sensor # siendo ajustados.
thous_out(); / / enviar a un espacio en blanco si no hay ningún sensor se ajusta.
//
}
//
//**********
Rutina para mostrar a la temperatura en la pantalla LCD.
Temperatura se muestra en la segunda línea.
//
void lcd_tempDisp() {}
//
//
lcd_set = 1; //LCD línea dos
lcd_line();
Delay(5);
//
lcd_Z = 1; / / dentro de cadena de caracteres
lcd_N = 4; / / Enviar sólo 4 caracteres
lcd_char();
Delay(5);
//
Obtener el valor de dentro de sensor de temperatura en la línea analógica 2
sensor = analogRead(A2); / /
Yo estoy viendo en grados F
Esto se parece con ninguna compensación
sensor = (((sensor * (5.0/1023.0)) * 100) - 273) * 1.8) + 32);
sensor = (((sensor * (5.0/1023.0)) * 100)-offset_sensor_2) * 1.8) + 32);
//
test_test = sensor; / / no le interesa los números después de decimal.
//
Cracker se utiliza después de cualquier lectura sobre cualquier línea de analoge
que la lectura por lo que puede visualizarse en la pantalla LCD
Cracker(); / / convertir la lectura
//
lcd_A = val100s;
thous_out();
//
lcd_A = val10s;
tens_out();
//
lcd_A = val1s;
tens_out();
//
lcd_A = ' '; / / da un espacio
car_out(); / / envía cada carácter en lugar de una cadena
//
lcd_Z = 2; / / fuera de cadena de caracteres
lcd_N = 4; / / Enviar sólo 4 caracteres
lcd_char();
Delay(5);
//
Obtener el valor del sensor de temperatura exterior en la línea analógica 3
sensor = analogRead(A3);
sensor = (((sensor * (5.0/1023.0)) * 100)-offset_sensor_3) * 1.8) + 32);
//
test_test = sensor; / / no le interesa los números después de decimal.
//
Cracker se utiliza después de cualquier lectura sobre cualquier línea de analoge
para hacer la lectura por lo que puede visualizarse en la pantalla LCD.
Cracker(); / / convertir la lectura
//
lcd_A = val100s;
thous_out();
//
lcd_A = val10s;
tens_out();
//
lcd_A = val1s;
tens_out();
//
lcd_A = ' ';
car_out();
//
lcd_A = ' ';
car_out();
//
lcd_A = ' ';
car_out();
//
lcd_A = ' ';
car_out();
//
lcd_A = ' ';
car_out();
//
Obtener el valor de a bordo el sensor de temperatura analógico línea 1
sensor = analogRead(A1); / / obtener el valor de la línea analógica 1
sensor = (((sensor * (5.0/1023.0)) * 100)-offset_sensor_1) * 1.8) + 32);
//
test_test = sensor; / / no le interesa los números después de decimal.
//
Cracker se utiliza después de cualquier lectura sobre cualquier línea analógica
que la lectura por lo que puede visualizarse en la pantalla LCD
Cracker(); / / convertir la lectura.
//
lcd_A = val100s;
thous_out();
//
lcd_A = val10s;
tens_out();
//
lcd_A = val1s;
tens_out();
//
//
}
//
////////////////
CRACKER / /
////////////////
//
//**********
Rutina rompe números en algo que se puede mostrar
en la pantalla lcd.
test_test debe tener una copia de lo que para antes de llegar aquí.
//
void cracker() {}
//
Prueba 1000s
val1000s = 0; / / 1000 claro registro
mientras que (test_test > = 1000) {}
test_test = test_test - 1000;
val1000s ++;
}
Prueba 100s
val100s = 0; / / Borrar registro 100
mientras que (test_test > = 100) {}
test_test = test_test - 100;
val100s ++;
}
Prueba de 10s
val10s = 0; / / claro 10 registro
mientras que (test_test > = 10) {}
test_test = test_test - 10;
val10s ++;
}
Resto es el 1
val1s = test_test;
//
La prueba final
El número almacenado en test_test ahora es ser roto
a registro de cuatro
val1000s = el número de miles de personas en el número de prueba
val100s = el número de centenas en el número de prueba
val10s = el número de decenas del número de prueba
val1s = resto, el número de unos en el número
//
}
//
//
///////////////////////////////
BOTONES DE LÍNEA ANALÓGICA / /
///////////////////////////////
//
//**********
Rutina para el botón 1 cosas.
//
void btn_1() {}
time_days = (time_days + 1);
Delay(100);
}
//
//**********
Rutina para el botón 2 cosas.
//
void btn_2() {}
time_hours = (time_hours + 1);
Delay(100);
}
//
//**********
Rutina para el botón 3 cosas.
//
void btn_3() {}
time_minutes = (time_minutes + 1);
Delay(100);
}
//
//**********
Rutina para el botón 4 cosas.
//
void btn_4() {}
interruptor (offset_A) {}
caso 0: / / desplazamiento fue 0
offset_A = 1; / / hacer sensor 1
rotura;
caso 1: / / Offset 1
offset_A = 2; / / se que sensor 2
rotura;
caso 2: / / Offset 2
offset_A = 3; / / se que sensor 3
rotura;
caso 3: / / Offset fue 3
offset_A = 0; / / que sea 0 no = ningún ajuste del sensor.
rotura;
}
}
//
//**********
Rutina para el botón 5 cosas.
Aumento compensaciones de sensor.
void btn_5() {}
//
Si (offset_A == 1) {}
offset_sensor_1 ++; / / incrementar el ajuste para el sensor 1
}
//
Si (offset_A == 2) {}
offset_sensor_2 ++; / / incrementar el ajuste para el sensor 2
}
//
Si (offset_A == 3) {}
offset_sensor_3 ++; / / incrementar el desplazamiento de sensor 3
}
//
}
//
//**********
Rutina para el botón 6 cosas.
Disminución de desplazamientos del sensor.
void btn_6() {}
//
Si (offset_A == 1) {}
offset_sensor_1--; / / disminución el ajuste para el sensor 1
}
//
Si (offset_A == 2) {}
offset_sensor_2--; / / disminución el ajuste para el sensor 2
}
//
Si (offset_A == 3) {}
offset_sensor_3--; / / disminuir el desplazamiento de sensor 3
}
//
}
//
//
////////////////////////
Botón / /
////////////////////////
//
//**********
Rutina para cuando se pulsa un botón.
El botón no se cuenta hasta que suelte.
//
void button_pressed() {}
//
btn_read2 = (btn_read) ;// haga una copia de la lectura para la prueba
//
Si los valores de botón son entre ciertos niveles
es igual a su botón.
Botón de valores adquiridos de btn_config
//
Si (btn_read > = btn_1lo & & btn_read2 < = btn_1hi) {}
btn_pressed = 1; / / 1 registro = botón 1
}
//
Si (btn_read > = btn_2lo & & btn_read2 < = btn_2hi) {}
btn_pressed = 2; / / 2 en registro = botón 2
}
//
Si (btn_read > = btn_3lo & & btn_read2 < = btn_3hi) {}
btn_pressed = 3; / / 3 registro = botón 3
}
//
Si (btn_read > = btn_4lo & & btn_read2 < = btn_4hi) {}
btn_pressed = 4; / / 4 registro = botón 4.
}
//
Si (btn_read > = btn_5lo & & btn_read2 < = btn_5hi) {}
btn_pressed = 5; / / 5 registro = botón 5.
}
//
Si (btn_read > = btn_6lo & & btn_read2 < = btn_6hi) {}
btn_pressed = 6; / / 6 de registro = botón 6.
}
//
}
//
//
/////////////////////////
Botón liberado / /
/////////////////////////
//
//**********
Rutina para cuando se suelta un botón.
Esto es cuando se realiza el evento de botón
//
void button_released() {}
Esto cuenta como una prensa del botón una vez despejada.
Si (btn_read == 0 & & btn_pressed == 1) {}
btn_pressed = 0; / / borrar el registro
btn_1(); / / Do el botón 1 cosas.
}
//
Esto cuenta como una prensa del botón una vez despejada.
Si (btn_read == 0 & & btn_pressed == 2) {}
btn_pressed = 0; / / borrar el registro
btn_2(); / / Do el botón 2 cosas.
}
//
Esto cuenta como una prensa del botón una vez despejada.
Si (btn_read == 0 & & btn_pressed == 3) {}
btn_pressed = 0; / / borrar el registro
btn_3(); / / Do el botón 3 cosas.
}
//
Esto cuenta como una prensa del botón una vez despejada.
Si (btn_read == 0 & & btn_pressed == 4) {}
btn_pressed = 0; / / borrar el registro
btn_4(); / / Do el botón 4 cosas.
}
//
Esto cuenta como una prensa del botón una vez despejada.
Si (btn_read == 0 & & btn_pressed == 5) {}
btn_pressed = 0; / / borrar el registro
btn_5(); / / Do el botón 5 cosas.
}
//
Esto cuenta como una prensa del botón una vez despejada.
Si (btn_read == 0 & & btn_pressed == 6) {}
btn_pressed = 0; / / borrar el registro
btn_6(); / / Do el botón 6 cosas.
}
//
}
//
//
/////////////////////////////////
BOTÓN CONFIGURAR RUTINA / /
/////////////////////////////////
//
//**********
Rutina para obtener los valores y hacer una gama para los botones.
Rutina se ejecuta una vez antes del bucle principal.
Botones de línea analógica 0
Botones pueden usarse en cualquier orden.
//
void btn_config() {}
Configurar los botones en la línea analógica A0
//
lcd_set = 1; / / LCD línea dos
lcd_line_clear; / / borrar la línea de la pantalla lcd
//
lcd_set = 0; / / LCD línea uno
lcd_line_clear(); / / borrar la línea de la pantalla lcd
lcd_set = 0; / / ya no hecho necesidad de repetir
lcd_line(); / / escribir en la línea de lcd
Delay(5);
Mostrar botón de configuración en línea uno
lcd_Z = 14; / botón configuración
lcd_N = 24; / / enviar todos los 24 caracteres
lcd_char();
Delay(10000); / / darle tiempo a leer
//
//
6 botones = 6 lazos alrededor.
//
para (bucle = 0; bucle < 6; bucle ++) {}
btn_btn(); / / prueba de botones
btn_number ++; / / incrementar el botón de prueba de 1.
}
//
btn_number == 1; / / Set volver a 1 cuando haya terminado.
//
}
//
////////////////
btn_btn / /
////////////////
//
//**********
Rutina para decirle qué botón pulsar
//
void btn_btn() {}
Prueba de botones
lcd_set = 0; / / LCD línea uno
lcd_line();
Delay(5);
//
lcd_Z = 15; / /
lcd_N = 6; / / enviar 6 caracteres = Press_
lcd_char();
lcd_Z = 14; / /
lcd_N = 7; / / enviar 7 caracteres = Button_
lcd_char();
//
lcd_A = btn_number; / / inicia el botón 1
tens_out(); / / enviar los dígitos
//
Delay(5000); / / darle tiempo a leer
//
btn_read = analogRead(A0); / / botones analógicos 0
//
lcd_set = 0; / / LCD línea uno
lcd_line();
Delay(5);
//
lcd_Z = 16; / botón configuración
lcd_N = 8; / / enviar 8 caracteres = Release_
lcd_char();
lcd_Z = 14; / botón configuración
lcd_N = 7; / / enviar 7 caracteres = Button_
lcd_char();
lcd_A = btn_number; / / inicia el botón 1
tens_out(); / / enviar los dígitos
//
Delay(5000); / / darle tiempo a leer.
//
lcd_set = 0; / / línea uno
lcd_line_clear(); / / borrar la línea de lcd
//
Probar los resultados
Botón estaba bueno ir aquí
Si (btn_read > 0) {}
btn_copy = btn_number; / / hacer una copia. Fue buena
btn_con_fig();
Hacer las cosas si fue una buena lectura
//
lcd_line(); / / ya establecido para la línea 1
Delay(5);
//
lcd_Z = 14; / botón configuración
lcd_N = 7; / / enviar 7 caracteres = Button_
lcd_char();
lcd_A = btn_number; / / inicia el botón 1
tens_out(); / / enviar los dígitos
lcd_Z = 18; / / cadena para "Set"
lcd_N = 4; / / enviar 4 caracteres = _Establecer
lcd_char(); / / enviar
//
//
}
//
//
Probar los resultados
Botón no pudo ir aquí
Si (btn_read < = 50) {}
btn_copy = (btn_number + 6); / / el botón trabajando en + 6
saltar sobre las lecturas buenas y los malos
btn_con_fig();
Hacer las cosas si fue una mala lectura
//
lcd_line(); / / ya establecido para la línea 1
Delay(5);
//
lcd_Z = 14; / / cadena para Button_
lcd_N = 7; / / enviar 7 caracteres = Button_
lcd_char();
lcd_A = btn_number; / / inicia el botón 1
tens_out(); / / enviar los dígitos
lcd_Z = 17; / /
lcd_N = 7; / / enviar 7 caracteres = _Failed
lcd_char();
//
}
btn_read = 0; / / borrar la lectura analógica
Delay(5000); / /
//
lcd_set = 0; / / línea uno
lcd_line_clear(); / / borrar la línea de lcd
//
}
//
////////////////////
btn_con_fig / /
////////////////////
//
//**********
Rutina que establece los rangos de botón para ver.
//
void btn_con_fig() {}
//
Número 1-6 son para la buena lectura
Números 7-12 son de mala lectura
//
interruptor (btn_copy) {}
caso 0: / / No número debe ser cero. error
break; / / retroceso de aquí
//
caso 1: / / botón número 1 fue buena
btn_1hi = (btn_read + 2); / / realizar los ajustes adecuados
btn_1lo = (btn_read - 2); / / realizar los ajustes adecuados
rotura;
//
caso 2: / / botón número 2 fue buena
btn_2hi = (btn_read + 2); / / realizar los ajustes adecuados
btn_2lo = (btn_read - 2); / / realizar los ajustes adecuados
rotura;
//
caso 3: / / botón número 3 fue buena
btn_3hi = (btn_read + 2); / / realizar los ajustes adecuados
btn_3lo = (btn_read - 2); / / realizar los ajustes adecuados
rotura;
//
caso 4: / / botón número 4 fue buena
btn_4hi = (btn_read + 2); / / realizar los ajustes adecuados
btn_4lo = (btn_read - 2); / / realizar los ajustes adecuados
rotura;
//
caso 5: / / botón número 5 fue buena
btn_5hi = (btn_read + 2); / / realizar los ajustes adecuados
btn_5lo = (btn_read - 2); / / realizar los ajustes adecuados
rotura;
//
caso 6: / / tecla número 6 fue buena
btn_6hi = (btn_read + 2); / / realizar los ajustes adecuados
btn_6lo = (btn_read - 2); / / realizar los ajustes adecuados
rotura;
//
////////////////////
Botones mal / /
////////////////////
//
caso 7: / / botón número 1 fue malo
btn_1hi = 100; / / false carga números para botones no
btn_1lo = 100; / / actuar erróneamente
rotura;
//
caso 8: / / botón número 2 fue mala
btn_2hi = 100; / / false carga números para botones no
btn_2lo = 100; / / actuar erróneamente
rotura;
//
caso 9: / / botón número 3 fue mala
btn_3hi = 100; / / false carga números para botones no
btn_3lo = 100; / / actuar erróneamente
rotura;
//
caso 10: / / botón número 4 era mala
btn_4hi = 100; / / false carga números para botones no
btn_4lo = 100; / / actuar erróneamente
rotura;
//
caso 11: / / botón número 5 era malo
btn_5hi = 100; / / false carga números para botones no
btn_5lo = 100; / / actuar erróneamente
rotura;
//
caso 12: / / tecla número 6 fue mala
btn_6hi = 100; / / false carga números para botones no
btn_6lo = 100; / / actuar erróneamente
rotura;
//
}
}
//
//
//
//

Artículos Relacionados

En su propio tiempo!

En su propio tiempo!

8 veces siete segmentos pantalla inducida por me hacer este dispositivo de reloj. El principio de diseño es: mostrar el cableado y la electrónica!Después de probar con el Arduino y un protoboard decidí hacer algunos ejemplos en el PWB. También las se
Tomar "su" mundo usando BASIC

Tomar "su" mundo usando BASIC

Pinky: "Gee, cerebro, ¿qué quieres hacer esta noche?"El cerebro: "Lo mismo que hacemos todas las noches, Pinky, tratar de conquistar el mundo!"- Pinky y cerebro¿Tratando de subir con un asombroso despliegue de Halloween o Navidad?¿Qué
Pantalla plana sonido envolvente la diversión

Pantalla plana sonido envolvente la diversión

Tengo un pequeño plano de 18 pulgadas pantalla tv / monitor. Pero es un poco demasiado alta tecnología y aspecto de plástico negro. Así que hice un simple madera rodea 'Teatro' para cubrir para arriba y que se ajuste con los muebles de mi casa. Así q
Arduino pantalla VFD reloj Tutorial - guía de VFD muestra

Arduino pantalla VFD reloj Tutorial - guía de VFD muestra

... + Un poco de VFDs¿Recuerdas (aún) la pantalla de su viejo reproductor de CD, radio coche o sistema HiFi? ¿Has notado la muestra utilizada en el supermercado que te muestra el elemento analizado y el precio de la misma?Estas pantallas tienen un ca
Doble pantalla Digital foto marco & Family Center

Doble pantalla Digital foto marco & Family Center

en respuesta a exhortaciones de mis amigos, estoy haciendo este instructable.  Desgraciadamente, esto significa que no tienen ningún "making of" fotos, ni ningún reales precios de piezas usadas.Tengo un hogar para tech díscolo y estaba mirando m
Frambuesa Pi: Usando 1$ I2C LCD mochilas 1602 pantallas y botones!

Frambuesa Pi: Usando 1$ I2C LCD mochilas 1602 pantallas y botones!

¡ Hola! Soy Arsenijs, gusta construir cosas con frambuesa Pi y últimamente he estado trabajando con pantallas de caracteres, así como sus mochilas de I2C, por lo que yo he coleccionado algunos hacks que puedo mostrarte. Hoy, te diré cómo ahorrar un m
Pantalla de proyector al aire libre con un presupuesto

Pantalla de proyector al aire libre con un presupuesto

juegos de video y películas al aire libre puede parecer como una actividad de nicho, pero es una experiencia única que es un gran pleaser multitud si usted tiene un gran espacio al aire libre. Una vez que empiezas a usarlo, volviendo a su viejo telev
Atril digital: Frambuesa Pi + pantalla táctil

Atril digital: Frambuesa Pi + pantalla táctil

IMSLP es una de las grandes cosas que suceden en el mundo de la música clásica en la historia reciente. Para los que no saben, IMSLP.org es una biblioteca en línea de cualquier partitura que ya no está bajo protección de copyright. Usted puede encont
Juego estación de reciclado pantalla portátil y madera vieja

Juego estación de reciclado pantalla portátil y madera vieja

Hola y gracias por tomarte un tiempo para leer mi Instructable última, espero que usted encuentra útil como una guía para crear algo similar o por lo menos eso él te inspira en tu propio proyecto. Y si te resulta útil te lo agradeceria te votar por m
Impresión de pantalla de foto emulsión

Impresión de pantalla de foto emulsión

a veces necesita que su mensaje hacia fuera rápidamente y barato. ¿Cómo imprimir un montón de camisetas y parches rápidos? Aquí está cómo lo hice.Este Instructable cubre el proceso de impresión de pantalla de foto emulsión estándar, es ideal para imp
Lámpara de madera reciclada con Himmeli pantalla!

Lámpara de madera reciclada con Himmeli pantalla!

Lámpara de madera reciclada con Himmeli pantalla!Saqué un viejo palet aparte... y había grandes bloques de madera entre las capas.Eran chatarras y fueron colocados en la pila de "quema posterior".Fin de semana pasado Encendimos fuego de Smás y e
Raiden (Cyborg Ninja) con pantalla motorizada de Metal Gear

Raiden (Cyborg Ninja) con pantalla motorizada de Metal Gear

era un gran fan de Metal Gear Rising: Operator justo después de que primero jugado el videojuego demo y pensamiento Raiden era impresionante.  ¿Un ninja cyborg no es cool?  Este fue un nuevo reto para mí, como tengo libre nunca un traje de antes.  De
Cambio pantalla de color

Cambio pantalla de color

por encargo color múltiple Mostrar.¿Siempre ha querido una pantalla que es un poco más grande y luego uno que se puede comprar?¿Que siempre quisiste hacer una exhibición de lo que usted quería?¡Yo también!Se trata de cómo hice un encargo múltiples pa
Sensor de presión de Arduino (FSR) con pantalla LCD

Sensor de presión de Arduino (FSR) con pantalla LCD

Este instructable (esperemos) demostrar cómo construir un sensor de presión basados en Arduino que muestra la presión medida en una pantalla pequeña del LCD. Incorporé elementos, tanto de hardware como de software, de diversas fuentes (se proporciona