Adquisicion de Datos Con Interpolacion
Adquisicion de Datos Con Interpolacion
Adquisicion de Datos Con Interpolacion
INTERPOLACION Y POLINOMIOS
Presentado por:
Presentado a:
Pereira, Risaralda
1
%% PROGRAMA PARA LA ADQUISIION DE DATOS POR MEDIO DE LA PLACA DE ARDUINO
#include <Arduino.h>
// Variables globales
int contadorVelocidades = 0; // Contador de velocidades asignadas
int motorSpeed = 0; // Velocidad del motor (0-9)
int contadorVueltas = 0; // Contador de vueltas
unsigned long tiempoInicio = 0; // Tiempo de inicio
unsigned long tiempoActual = 0; // Tiempo actual
const int limiteDistancia = 15; // Límite de distancia del sensor ultrasónico en cm
bool registroActivo = false; // Bandera para indicar si se está realizando el
registro
bool mostrarTablaPendiente = false; // Bandera para indicar si se debe mostrar la
tabla
// Prototipos de función
void mostrarTabla();
float obtenerDistanciaPromedio();
void reiniciarSistema();
void setup() {
Serial.begin(9600); // Inicia la comunicación serial
pinMode(in3, OUTPUT); // Configura los pines del motor como salida
pinMode(in4, OUTPUT);
pinMode(EnB, OUTPUT);
2
pinMode(echoPin, INPUT);
void loop() {
tiempoActual = millis(); // Actualiza el tiempo actual
// Asignar velocidad
if (command >= '0' && command <= '9') { // Velocidad en el rango de 0 a 9
motorSpeed = command - '0'; // Convierte el carácter en el número
correspondiente
analogWrite(EnB, map(motorSpeed, 0, 9, 0, 255)); // Configura la velocidad
del motor
Serial.print("Velocidad asignada: ");
Serial.println(motorSpeed);
3
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
// Contar vueltas del motor si el objeto está dentro del rango del sensor
if (distanciaPromedio <= limiteDistancia) {
contadorVueltas++;
}
}
4
float distanciaTotal = 0;
clc
%% Datos proporcionados
datos = [2 2;
3 7;
4 10;
5 3;
6 6;
7 10;
9 12;
8 11];
%% Dividir datos en x e y
x = datos(:, 1);
y = datos(:, 2);
5
grid on;
xlabel('Velocidad (%)');
ylabel('Conteo de Vueltas');
title('Ajuste Polinomial de Grado 2');
%% Graficas de interpolación
figure;
subplot(2, 2, 1);
plot(x, y, 'o', X, Y_spline);
grid on;
xlabel('Velocidad (%)');
ylabel('Conteo de Vueltas');
title('Interpolación con Spline');
subplot(2, 2, 2);
plot(x, y, 'o', X, Y_linear);
grid on;
xlabel('Velocidad (%)');
ylabel('Conteo de Vueltas');
title('Interpolación Lineal');
6
subplot(2, 2, 3);
plot(x, y, 'o', X, Y_pchip);
grid on;
xlabel('Velocidad (%)');
ylabel('Conteo de Vueltas');
title('Interpolación Pchip');
subplot(2, 2, 2);
plot(x, y, 'o', X, Y_spline);
grid on;
xlabel('Velocidad (%)');
ylabel('Conteo de Vueltas');
title('Interpolación con Spline');
7
subplot(2, 2, 3);
plot(x, y, 'o', X, Y_linear);
grid on;
xlabel('Velocidad (%)');
ylabel('Conteo de Vueltas');
title('Interpolación Lineal');
subplot(2, 2, 4);
plot(x, y, 'o', X, Y_pchip);
grid on;
xlabel('Velocidad (%)');
ylabel('Conteo de Vueltas');
title('Interpolación Pchip');