Post on 17-Jan-2016
description
1. A continuación se presenta un código escrito en el IDE de ARDUINO para el ATMEGA 328 el cual debe realizar las
siguientes funciones.
Por el puerto serial a 9600 baudios se envían una de las letras del alfabeto (a…z) en minúscula y por este mismo
puerto se recibe la letra del alfabeto convertida a mayúscula (A…Z), en el monitor serial se debe imprimir la letra del
alfabeto en minúscula y la letra del alfabeto en mayúscula, si se envía un carácter diferente al del alfabeto en
minúscula se debe imprimir un mensaje de error y si se envía un carácter en mayúscula este debe permanecer sin
cambio.
a. ¿El código soluciona el problema planteado?
b. Si el código no soluciona el problema cual es la corrección del mismo. void setup()
{
Serial(9600);
}
void loop()
{
char dato;
if(Serial.available()>0)
{
dato=Serial.read();
if(dato >= 122 && dato <= 97 )
{
Serial.print("El caracter recibido es: ");
Serial.println(dato);
dato= dato & 223;
Serial.print("El caracter mayuscula es: ");
Serial.println(dato);
}
else if(dato >= 90 && dato <= 65)
{
Serial.print("El caracter recibido esta en mayusculas y es: ");
Serial.println(dato);
}
else
Serial.println("Digite un caracter valido");
}
}
2. A continuación se presenta un código escrito en el IDE de ARDUINO para el ATMEGA 328 el cual debe realizar las
siguientes funciones.
Por los pines del arduino (2,3,4,5) se conectan 4 interruptores par ingresar un numero binario de cuatro bit donde el
pin2=LSB y pin5=MSB.
El pin6 del arduino se conectara un interruptor para realizara la función de selección de complemento así:
Si pin6=0 entonces se presentara el complemento a uno del numero ingresado por los pines (8,9,10,11) del arduino.
Si pin6=1 entonces se presentara el complemento a dos del numero ingresado por los pines (8,9,10,11) del arduino.
a. ¿El código soluciona el problema planteado?
b. Si el código no soluciona el problema cual es la corrección del mismo.
int pin_in []={2,3,4,5,6,};
int pin_out[]={8,9,10,11}; //defino pines de salida
int b[]={0,0,0,0,0};
int dato_ina,dato_outa;
void setup()
{
iniciar_in();
iniciar_out();
}
void loop()
{
lectura();
conviertedato(b);
if(digitalRead(6)==LOW)
{
dato_outa=dato_ina^15;
escritura(dato_outa);
}
else
{
dato_outa=(dato_ina^15)+1;
escritura(dato_outa);
}
}
void iniciar_in () //configuro pines como entradas
{
for (int p=0; p<6; p++)
{
pinMode(pin_in[p],INPUT);
}
}
void iniciar_out () //configuro pines como salidas
{
for (int p=0; p<4; p++)
{
pinMode(pin_out[p],OUTPUT);
}
}
void escritura (int datoin) // escribo un dato por el puerto
{
for(int a=0;a<4;a++)
{
digitalWrite(pin_out[a], bitRead(datoin,a));
}
}
void lectura () //leo un dato por el puerto
{
for(int a=0;a<4;a++)
{
b[a]=digitalRead(pin_in[a]);
}
}
void conviertedato(int*) // convierto de binario a decimal y separo los datos
{
dato_ina=(b[0]*pow(2,0))+(b[1]*pow(2,1))+(b[2]*pow(2,2)+(b[3]*pow(2,3)));
}
3. Expresar en formato binario de 8 bits signo-magnitud complemento dos los siguientes números:
a) 29 b)-85 c)100 d)-123
4. Representar en formato IEEE de 32 bits el numero binario 3,1416.