Circuito Digitales
PARCIAL 2 CORTE
Deivyd Eduardo Sanchez Ruiz
[email protected]
Ingeniería de sistemas
5 semestre
Bogotá D.C
Corporación Universitaria Republicana
12 de oct. de 2020
Circuito
Motor
Tablero
Códigos:
#include <SoftwareSerial.h>
#define f1 8
#define f2 9
#define f3 10
#define f4 11
#define c1 A0
#define c2 A1
#define c3 A2
#define c4 A3
SoftwareSerial serial1(0, 1)
void setup(){
pinMode(f1, OUTPUT);
pinMode(f2, OUTPUT);
pinMode(f3, OUTPUT);
pinMode(f4, OUTPUT);
pinMode(c1, INPUT);
pinMode(c2, INPUT);
pinMode(c3, INPUT);
pinMode(c4, INPUT);
pinMode(0, INPUT);
pinMode(1, OUTPUT);
serial1.begin(9600);
char teclado(){
char tecla;
digitalWrite(f1,HIGH);
digitalWrite(f2,LOW);
digitalWrite(f3,LOW);
digitalWrite(f4,LOW);
if (digitalRead(c1)){
tecla = '1';
}
if (digitalRead(c2)){
tecla = '2';
if (digitalRead(c3)){
tecla = '3';
if (digitalRead(c4)){
tecla = 'A';
digitalWrite(f2,HIGH);
digitalWrite(f1,LOW);
digitalWrite(f3,LOW);
digitalWrite(f4,LOW);
if (digitalRead(c1)){
tecla = '4';
if (digitalRead(c2)){
tecla = '5';
if (digitalRead(c3)){
tecla = '6';
if (digitalRead(c4)){
tecla = 'B';
digitalWrite(f3,HIGH);
digitalWrite(f1,LOW);
digitalWrite(f2,LOW);
digitalWrite(f4,LOW);
if (digitalRead(c1)){
tecla = '7';
if (digitalRead(c2)){
tecla = '8';
if (digitalRead(c3)){
tecla = '9';
if (digitalRead(c4)){
tecla = 'C';
digitalWrite(f4,HIGH);
digitalWrite(f1,LOW);
digitalWrite(f2,LOW);
digitalWrite(f3,LOW);
if (digitalRead(c1)){
tecla = '*';
if (digitalRead(c2)){
tecla = '0';
if (digitalRead(c3)){
tecla = '#';
if (digitalRead(c4)){
tecla = 'D';
return tecla;
void loop()
char entrada;
entrada = teclado();
serial1.write(entrada);
entrada = teclado();
serial1.write(entrada);
//Manejo de tablero
#include <SoftwareSerial.h>
SoftwareSerial serial2(7, 8); // RX | TX
int velocidad;
boolean direccion = 1;
int habilitar = 11;
int entrada1 = 10;
int entrada2 = 9;
void mostrar (char caracter){
if (caracter == '1'){
PORTD = B00000110; // creación de numero en método cátodo
else if (caracter == '2'){
PORTD = B01011011; // creación de numero en método cátodo
else if (caracter == '3'){
PORTD = B01001111; // creación de numero en método cátodo
else if (caracter == '4'){
PORTD = B01100110; // creación de numero en método cátodo
else if (caracter == '5'){
PORTD = B01101101; // creación de numero en método cátodo
else if (caracter == '6'){
PORTD = B01111101; // creación de numero en método cátodo
else if(caracter == '7'){
PORTD = B00000111; // creación de numero en método cátodo
}
else if(caracter == '8'){
PORTD = B01111111; // creación de numero en método cátodo
else if(caracter == '9'){
PORTD = B01101111; // creación de numero en método cátodo
else if (caracter == '0'){
PORTD = B00111111; // creación de numero en método cátodo
void setup(){
pinMode(0, OUTPUT);
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, INPUT);
pinMode(8, OUTPUT);
serial2.begin(9600);
pinMode(entrada1, OUTPUT);
pinMode(entrada2, OUTPUT);
pinMode(habilitar, OUTPUT);
void loop(){
char entrada;
if (serial2.available()){
entrada = serial2.read();
if (entrada != '*' && entrada != '#') {
velocidad = entrada;
mostrar(entrada);
else if (entrada == '*'){
direccion = 0;
else if (entrada == '#'){
direccion = 1;
analogWrite(habilitar, velocidad);
digitalWrite(entrada1, direccion);
digitalWrite(entrada2, ! direccion);
}