Académique Documents
Professionnel Documents
Culture Documents
Ingeniera Mecatrnica
Apellido Materno
Nombre(s)
Apellido Paterno
Periodo:
ENERO-JUNIO 15
_____________________
2
Grupo:
Apellido Materno
Nombre(s)
Objetivo:
El objetivo de este proyecto es demostrar Los conocimientos y habilidades obtenidas a
lo largo del curso de programacin bsica comprendido el en periodo enero junio
#include <stdio.h>
void PideDatos(int *Dim, float Sist[][102]);
void EscribeDatos(int Dim, float Sist[][102]);
void ResuelveGauss(int Dim, float Sist[][102]);
int main(void)
{
int C,Dimension;
float Sistema[101][102];
PideDatos(&Dimension,Sistema);
printf("\n\n\nEl SISTEMA introducido es el siguiente: \n\n");
EscribeDatos(Dimension,Sistema);
ResuelveGauss(Dimension,Sistema);
print("\n\n\nLas soluciones son:\n");
for(C=1;C<=Dimension;C++) printf("\n X%d=%f\n",C,Sistema[C][Dimension+1]);
break;
return(0);
}
void PideDatos(int *Dim,float Sist[][102])
{
int A,B;
printf("\n\n ||RESUELVE SISTEMAS LINEALES DETERMINADOS POR
GAUSS||");
printf("\n\n\n Introduce el numero de incognitas:(menor que 100)");
scanf("%d",&*Dim);
printf("\n\n PASE A INTRODUCIR CADA COMPONENTE DEL SISTEMA (A|B):");
printf("\n\n MATRIZ A:\n");
for(A=1;A<=*Dim;A++) for(B=1;B<=*Dim;B++){
printf("\n Termino A(%d,%d):",A,B); scanf("%f",&Sist[A][B]);}
printf("\n\n\n VECTOR B:\n");
for(A=1;A<=*Dim;A++){
printf("\n Termino B(%d):",A);scanf("%f",&Sist[A][*Dim+1]);
}
}
void EscribeDatos(int Dim, float Sist[][102])
{
int A,B;
for(A=1;A<=Dim;A++){
for(B=1;B<=(Dim+1);B++){
printf("%7.2f",Sist[A][B]);
if(B==Dim) printf(" |");}
printf("\n");
}}
void ResuelveGauss(int Dim, float Sist[][102])
{
int NoCero,Col,C1,C2,A;
float Pivote,V1;
for(Col=1;Col<=Dim;Col++){
NoCero=0;A=Col;
while(NoCero==0){
if((Sist[A][Col]>0.0000001)||((Sist[A][Col]<-0.0000001))){
NoCero=1;}
else A++;}
Pivote=Sist[A][Col];
for(C1=1;C1<=(Dim+1);C1++){
V1=Sist[A][C1];
Sist[A][C1]=Sist[Col][C1];
Sist[Col][C1]=V1/Pivote;}
for(C2=Col+1;C2<=Dim;C2++){
V1=Sist[C2][Col];
for(C1=Col;C1<=(Dim+1);C1++){
Sist[C2][C1]=Sist[C2][C1]-V1*Sist[Col][C1];}
}
}
for(Col=Dim;Col>=1;Col--) for(C1=(Col-1);C1>=1;C1--){
Sist[C1][Dim+1]=Sist[C1][Dim+1]-Sist[C1][Col]*Sist[Col][Dim+1];
Sist[C1][Col]=0;
}
}
num = DAP-48;
lcd.setCursor(PUNTO,1);
lcd.print(DAP);
PUNTO++;
}
x = x * 10 + num;
k = x * RESTAR2;
D = k / 10;
}
//ESPERA POR LA TECLA "C" = A ENTER
} while (DAP != 'C');
//REGRISTRA LOS DATOS INGRESADOS
lcd.clear();
lcd.setCursor(2,1);
lcd.print(D);
delay(500);
lcd.clear();
for(i=1;i<=D;i++) {
for(j=1;j<=D;j++){
lcd.setCursor(0,LINE);
lcd.print("dato ");
lcd.print(i);
lcd.print(",");
lcd.print(j);
do {
PAD = Teclado1.waitForKey() ;
if(PAD=='1'||PAD=='2'||PAD=='3'||PAD=='4'||PAD=='5'||PAD=='6'||PAD=='7'||
PAD=='8'||PAD=='9'||PAD=='0'){
HASTAGSALVANDOELSEMESTRESALVANDOELSEMESTRE = PAD-48;
lcd.setCursor(POINT+1,LINE);
lcd.print(PAD);
POINT++;
}
if(PAD=='-'){
RESTAR = PAD -46;
lcd.setCursor(POINT,LINE);
lcd.print(PAD);
}
COD[i][j] = COD[i][j] * 10 +
HASTAGSALVANDOELSEMESTRESALVANDOELSEMESTRE;
V[i][j] = COD[i][j] * RESTAR;
W2M[i][j] = V[i][j] / 10;
} while (PAD != 'C');
LINE++;
if (POINT+1>=19){
POINT = 17;
}
if (LINE>=4){
LINE = 0;
}
delay(500);
lcd.clear();
}
//MUESTRA LOS DATOS INGRESADOS
}
for (i=1;i<=D;i++) {
for (j=1;j<=D;j++){
u[i][j] = W2M[i][j]/1.00;
lcd.clear();
lcd.setCursor(0,LINE);
lcd.print(" n ");
lcd.print(i);
lcd.print(",");
lcd.print(j);
lcd.print(" ");
lcd.print(u[i][j]);
LINE++;
if (LINE>=4){
LINE = 0;
}
delay(500);
}
}
//PIDE EL RESULTADO DE CADA ECUACION
lcd.clear();
for(i=1;i<=D;i++){
lcd.setCursor(0,LINE);
lcd.print("valor ec. ");
lcd.print(i);
do {
DAP = Teclado1.waitForKey() ;
if(DAP=='1'||DAP=='2'||DAP=='3'||DAP=='4'||DAP=='5'||DAP=='6'||DAP=='7'||
DAP=='8'||DAP=='9'||DAP=='0'){
num = DAP-48;
lcd.setCursor(POINT+1,LINE);
lcd.print(DAP);
POINT=POINT+3;
}
if(DAP=='-'){
RESTAR2 = DAP -46;
lcd.setCursor(POINT,LINE);
lcd.print(DAP);
}
COD[i][D+1] = COD[i][D+1] * 10 + num;
V[i][D+1] = COD[i][D+1] * RESTAR2;
W2M[i][D+1] = V[i][D+1] / 10;
// ESPERA LA TECLA "C" COMO CONFIRMACION
} while (DAP != 'C');
LINE++;
if (POINT+1>=19){
POINT = 17;
}
if (LINE>=4){
LINE = 0;
}
delay(500);
lcd.clear();
}
//LIMPIA PANTALLA
//MUESTRA LOS RESULTADOS DE CADA ECUACION
for(i=1;i<=D;i++){
u[i][D+1] = W2M[i][D+1]/1.00;
lcd.clear();
lcd.setCursor(0,LINE);
lcd.print(" X ");
lcd.print(i);
lcd.print(" = \n");
lcd.print(u[i][D+1]);
LINE++;
if (LINE>=4){
LINE = 0;
}
delay(200);
}
delay(800);
//APLICA METODO DE GAUSS PARA RESOLVER
for(FUU=1;FUU<=D;FUU++){
KAKASHI = 0; i = FUU;
while(KAKASHI==0){
if((u[i][FUU]>0.0000001)||((u[i][FUU]<-0.0000001))){
KAKASHI=1;}
else i++;}
INICIO=u[i][FUU];
for(KOF=1;KOF<=(D+1);KOF++){
VECTOR=u[i][KOF];
u[i][KOF]=u[FUU][KOF];
u[FUU][KOF]=VECTOR/INICIO;}
for(KING=FUU+1;KING<=D;KING++){
VECTOR=u[KING][FUU];
for(KOF=FUU;KOF<=(D+1);KOF++){
u[KING][KOF]=u[KING][KOF]-VECTOR*u[FUU][KOF];}
}}
for(FUU=D;FUU>=1;FUU--) for(KOF=(FUU-1);KOF>=1;KOF--){
u[KOF][D+1]=u[KOF][D+1]-u[KOF][FUU]*u[FUU][D+1];
u[KOF][FUU]=0;
}
lcd.clear();
//MUESTRA LOS RESULTADOS DE LAS "EQUIS"
for(s=1;s<=D;s++){
lcd.setCursor(0,LINE);
lcd.print("x");
lcd.print(s);
lcd.print(" = \n");
lcd.print(" ");
lcd.print(u[s][D+1]);
delay(2000);
LINE++;
if (LINE>=4){
LINE = 0;
}
delay(300);
}
delay(700);
lcd.clear();
}
//Cuatro filas
//Cuatro columnas
int KAKASHI,FUU,KOF,KING,KYO,RYO=0;
float INICIO,VECTOR,VECTOR2,DETERMINANTE=1;
// INICIALIZA LA INTERFAZ CON LOS PINES SELECCIONADOS
LiquidCrystal lcd(9, 8, 10, 11, 12, 13);
// PINES DE LA LCD (RS, E, D4~D7)
Keypad Teclado1 = Keypad(makeKeymap(Teclas), Pins_Filas, Pins_Cols,
Filas, Cols);
void setup() {
// DEFINE NUMERO DE FILAS Y COLUMNAS:
lcd.begin(20, 4);
// escribe mensaje en la LCD.
lcd.print("\n\n HELLO WORLD! \n\n ");
lcd.print("\n ING. MECATRONICA :] ");
delay(1000);
lcd.clear();
lcd.print("\n\n PROG. BASICA \(0)/ ");
delay(700);
lcd.clear();
lcd.print("perceverancia es =");
lcd.print("\n\n\n\n\n\n\n\n ......a exito");
delay(1000);
lcd.clear();
lcd.print("\n\n METODO GAUSS ");
delay(500);
lcd.clear();
VSS:
Que es el pin de negativo o masa o 0 volts o GND.
VDD:
Es la alimentacin principal de la pantalla y el chip, lleva 5 voltios (recomendable
ponerle en serie una resistencia para evitar daos, con una de 220 ohm es
suficiente).
VO:
Es el contraste de la pantalla, debe conectarse con un potencimetro de unos
10k ohm o una resistencia fija una vez que encontremos el valor deseado de
contraste. Tengan en cuenta que si no conectan esto, no vern nada.
RS:
Es el selector de registro (el microcontrolador le comunica a la LCD si quiere
mostrar caracteres o si lo que quiere es enviar comandos de control, como
cambiar posicin del cursor o borrar la pantalla, por ejemplo).
RW:
Es el pin que comanda la lectura/escritura. En nuestro caso siempre estar en 0
(conectado a GND) para que escriba en todo momento.
E:
Es enable, habilita la pantalla para recibir informacin.
D0~D7:
Como pueden ver la pantalla tiene un bus de datos de 8 bits, de D0 a D7. Nos
servirn para establecer las lneas de comunicacin por donde se transfieren los
datos.
A y K:
Son los pines del led de la luz de fondo de la pantalla. A se conectar a 4 o 5
volts y K a gnd.
CONEXIN:
ALIMENTACION Y CONTROL DE CONTRASTE:
CONCLUCION
A partir de nuestros conocimientos previos adquirido en clases al ponerlos en prctica
en este proyecto llegamos a la manera de reflexionar lo que es capaz de realizar un pin
accionando su funcin en base a las libreras del software, combinando diferentes
elementos y estructurarlos de manera que nos permite realizar y solucionar con xito la
problemtica del programa.
Al conocer y saber determinadas entradas del arduino se puede realizar diversas
funciones desde bsicas como encender un simple LED, aplicado en la vida cotidiana
en los semforos que encontramos a diario o generar un proyecto de alta complejidad
como son los muy distinguidos drones.
Tomando en cuenta que nuestro proyecto y sin descartar todo lo que hemos terminado
no es tan sencillo como suena realizar una calculadora con el mtodo de Gauss ya
que poder realizar la programacin esencial tomo ms tiempo del determinado, ya que
marcaba errores al copilar y se volva al inicio para corregir esos detalles asi afinando
un poco ms la practica individual de los integrantes al momento de programar.