Académique Documents
Professionnel Documents
Culture Documents
Introducción al manejo de circuitos digitales: implementación de funciones lógicas con arduino uno
Procedimiento
Objetivos
1.Circuito combinacional
Calcular la resistividad aparente del terreno
Calcular la resistencia puesto a tierra del 1.1 Analice el siguiente circuito y obtenga
terreno por los distintos métodos conocidos. la tabla de verdad de la salida F.
Dar un informe de los componentes de los
que probablemente se componga el terreno
medido.
Materiales y equipos
Toma de datos
A B D F1
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 1
Tabla 2. Tabla de verdad F1.
Figura 6. Resultados dados por el
osciloscopio.
1.4
boolean A, B, C, D, F, F1;
4.2 Circuitos lógicos de integrados
comerciales 74LS249
void setup() {
pinMode(1, INPUT);
2.1
pinMode(2, INPUT);
L R D C B A y0 y1 y2
pinMode(3, INPUT);
pinMode(4, INPUT); 1 1 0 0 0 0 1 1 1
pinMode(9, OUTPUT); 1 x 0 0 0 1 0 1 1
pinMode(8, OUTPUT); 1 x 0 0 1 0 1 1 0
}
1 x 0 0 1 1 1 1 1
void loop() { 1 x 0 1 0 0 0 1 1
A = digitalRead(1); 1 x 0 1 0 1 1 0 1
B = digitalRead(2); 1 x 0 1 1 0 1 0 1
C = digitalRead(3); 1 x 0 1 1 1 1 1 1
D = digitalRead(4);
1 x 1 0 0 0 1 1 1
F = !((A && (!(B && B) || C) || !(B || B) 1 x 1 0 0 1 1 1 1
&& !D) || ((!(B || B) && !(A && !(A && A))) 1 x 1 0 1 0 0 0 0
|| ((B || B) && (A && !(A && A)))) && ((A 1 x 1 0 1 1 0 0 1
&& (!D || !C)))) && ((((B || C) && A) && 1 x 1 1 0 0 0 1 0
!(C || !C)) || ((!((B || C) && A)) && (C ||
1 x 1 1 0 1 1 0 0
!C)));
F1 = F1 = !A && (D || B); 1 x 1 1 1 0 0 0 0
1 x 1 1 1 1 0 0 0
digitalWrite(8, F);
digitalWrite(9, F1); L R D C B A y3 y4 y5 y6
} 1 1 0 0 0 0 1 1 1 0
1 x 0 0 0 1 0 0 0 0
1 x 0 0 1 0 1 1 0 1
1 x 0 0 1 1 1 0 0 1
1 x 0 1 0 0 0 0 1 1
1 x 0 1 0 1 1 0 1 1 int A=0;
1 x 0 1 1 0 1 1 1 1 int B=0;
int C=0;
1 x 0 1 1 1 0 0 0 0
int D=0;
1 x 1 0 0 0 1 1 1 1
1 x 1 0 0 1 1 0 1 1 int Ya=6;
1 x 1 0 1 0 1 1 0 1 int Yb=7;
1 x 1 0 1 1 1 0 0 1 int Yc=8;
int Yd=9;
1 x 1 1 0 0 0 0 1 1
int Ye=10;
1 x 1 1 0 1 1 0 1 1 int Yf=11;
1 x 1 1 1 0 1 1 1 1 int Yg=12;
1 x 1 1 1 1 0 0 0 0
Tabla 3. Tabla de verdad 74LS249. int eYa=0;
int eYb=0;
2.2 int eYc=0;
int eYd=0;
int eYe=0;
int eYf=0;
int eYg=0;
int cv=21;
void setup() {
Serial.begin(9600);
pinMode(pA,INPUT);
pinMode(pB,INPUT);
pinMode(pC,INPUT);
pinMode(pD,INPUT);
pinMode(cv,OUTPUT);
pinMode(Ya,OUTPUT);
pinMode(Yb,OUTPUT);
pinMode(Yc,OUTPUT);
pinMode(Yd,OUTPUT);
pinMode(Ye,OUTPUT);
pinMode(Yf,OUTPUT);
pinMode(Yg,OUTPUT);
}
void loop() {
digitalWrite(cv,HIGH);
A=digitalRead(pA);
B=digitalRead(pB);
C=digitalRead(pC);
D=digitalRead(pD);
3 Circuitos lógicos de integrados Serial.print("A: ");
comerciales 74LS148. Serial.print(A);
Serial.print(" B: ");
int pA=2; Serial.print(B);
int pB=3; Serial.print(" C: ");
int pC=4; Serial.print(C);
int pD=5; Serial.print(" D: ");
Serial.println(D);
eYa=((!B&&!C&&!D)||(!A&&!B&&C)||(!A&
&B&&D)||(A&&!C&&D));
eYb=((!A&&!B)||(!D&&!C)||(!A&&C&&D)||(
!B&&!C));
eYc=((!A&&B)||(!B&&!C)||(!B&&D));
eYd=((!B&&!D)||(B&&!C&&D)||(!A&&!B&&
C)||(C&&!D));
eYe=((!B&&!D)||(C&&!D));
eYf=((A||B||!D)&&(A||B||!C)&&(!B||!C||!D));
eYg=((A||B||C)&&(!B||!C||!D));
digitalWrite(Ya,eYa);
digitalWrite(Yb,eYb);
digitalWrite(Yc,eYc);
digitalWrite(Yd,eYd);
digitalWrite(Ye,eYe);
digitalWrite(Yf,eYf);
digitalWrite(Yg,eYg);
Figura 6. Simulación del ejercicio 3.1.
3.1
EI x0 x1 x2 x3 x4 x5 x6 x7 A0 A1 El A2circuito CI 74LS148 es un codificador
de código BCD .
0 x x x x x x x x 1 1 1
1 1 1 1 1 1 1 1 1 1 1 3.21
1 x x x x x x x 0 0 0 int0x3=5;
1 x x x x x x 0 1 0 0 int1x4=6;
1 x x x x x 0 1 1 0 1 int0x5=7;
int x6=8;
1 x x x x 0 1 1 1 0 1 int1x7=9;
1 x x x 0 1 1 1 1 1 0 int0e1=10;
1 x x 0 1 1 1 1 1 1 0 1
1 x 0 1 1 1 1 1 1 1 1 int0c0=11;
int c1=12;
1 1 1 1 1 1 1 1 1 1 1 1
int c2=13;
Tabla 4. Tabla de verdad saca de la hoja int e0=A5;
técnica. int gs=A3;
int ex0=0;
int ex1=0;
int ex2=0;
int ex3=0;
int ex4=0;
int ex5=0;
int ex6=0;
int ex7=0;
int ee1=0;
int ec0=0;
int ec1=0;
int ec2=0;
int ee0=0;
int egs=0;
void setup() {
// put your setup code here, to run once:
pinMode(x0,INPUT_PULLUP);
pinMode(x1,INPUT_PULLUP);
pinMode(x2,INPUT_PULLUP);
pinMode(x3,INPUT_PULLUP);
pinMode(x4,INPUT_PULLUP);
pinMode(x5,INPUT_PULLUP);
pinMode(x6,INPUT_PULLUP);
pinMode(x7,INPUT_PULLUP);
pinMode(e1,INPUT_PULLUP);
pinMode(c0,OUTPUT);
pinMode(c1,OUTPUT);
pinMode(c2,OUTPUT);
pinMode(e0,OUTPUT);
pinMode(gs,OUTPUT);
}
void loop() {
// put your main code here, to run
repeatedly:
ex0=digitalRead(x0);
ex1=digitalRead(x1);
ex2=digitalRead(x2);
ex3=digitalRead(x3);
ex4=digitalRead(x4);
ex5=digitalRead(x5);
ex6=digitalRead(x6);
ex7=digitalRead(x7);
ee1=digitalRead(e1);
ec0=(!((!ex1&&ex2&&ex4&&ex6&&ex7&
&!ee1)||(!ex3&&ex4&&ex6&&!ee1)||(!ex5
&&ex6&&!ee1)||(!ex7&&!ee1)));
ec1=(!((!ex2&&ex4&&ex5&&!ee1)||(!ex3&
&ex4&&ex5&&!ee1)||(!ex6&&!ee1)||(!ex7
&&!ee1)));
ec2=(!((!ex4&&!ee1)||(!ex5&&!ee1)||(!ex6
&&!ee1)||(!ex7&&!ee1)));
ee0=(!(ex0&&ex1&&ex2&&ex3&&ex4&&
ex5&&ex6&&ex7&&(!ee1)));
egs=(!((!(ex0&&ex1&&ex2&&ex3&&ex4&
&ex5&&ex6&&ex7&&(!ee1)))&&(!ee1)));
digitalWrite(c0,ec0);
digitalWrite(c1,ec1);
digitalWrite(c2,ec2);
digitalWrite(e0,ee0);
digitalWrite(gs,egs);}