From 1139cbadfb551dcb693d639f059451553e38572c Mon Sep 17 00:00:00 2001 From: Martina Barreiro Guerra <martina.barreiro@fing.edu.uy> Date: Mon, 4 Jul 2022 13:14:54 -0300 Subject: [PATCH] =?UTF-8?q?IMPETOM-Cl=C3=8Dnico?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Arduino/ImpetomC_Arduino.ino | 102 +++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 Arduino/ImpetomC_Arduino.ino diff --git a/Arduino/ImpetomC_Arduino.ino b/Arduino/ImpetomC_Arduino.ino new file mode 100644 index 0000000..a5612b8 --- /dev/null +++ b/Arduino/ImpetomC_Arduino.ino @@ -0,0 +1,102 @@ +/* + * LibrerÃas +*/ + +#include <CD74HC4067.h> // LibrerÃa de los mux utilizados + +#include <AD9833.h> // LibrerÃa del dds AD9833 + +/* + * Constantes y definiciones +*/ + +//DDS +#define minDDSfrecuency 29500 // 29,5kHz de frecuencia mÃnima para el DDS +#define maxDDSfrecuency 32000 // 32kHz de frecuencia máxima para el DDS +#define DDSFNCPin A2 //Pin digital para el seteo de la frecuencia del DDS +// Se utilizan el pin 11 y 13 para la comunicacion SPI del AD9833. El pin 11 corresponde al dat y el 13 al clk del integrado + +// Enable mux de tensión +#define enableTension A4 + +// Enable mux de corriente +#define enableCorriente A5 + +// Pin para medida de tensión +#define pinMedida A0 + +//cantidad de muestras para cada modo +#define cMuestrasColocacion 50 +#define cMuestrasReconstruccion 100 + +/* + * Variables Globales +*/ + +//Seteo los pines para el mux de tensión y corriente + // s0 s1 s2 s3 + // | | | | +CD74HC4067 muxTension(2, 3, 4, 5); // creo el objeto CD74HC4067 para el mux de tensión + + + // s0 s1 s2 s3 + // | | | | +CD74HC4067 muxCorriente(6, 7, 8, 9); // creo el objeto CD74HC4067 para el mux de corriente + +//DDS +AD9833 gen(DDSFNCPin);// Genero el objeto DDS + +//Variables para el control de cambio de modo de operación + +boolean modoColocacion=true;//Utilizado para saber en que modo estoy trabajando colocación o reconstrucción + +//Variable global para el seteo del a frecuencia del DDS +long int DDSfrecuencyRate = 30000; // Frecuencia de 30kHz + +/* + * Funcion setup +*/ + +void setup() { + //Inicializamos las funciones del DDS + inicializarDDS(); + + //seteo el enable de corriente y deshabilito mux corriente + pinMode(enableCorriente,OUTPUT); + deshabilitarMuxDeCorriente(); + + //seteo el enable de tension y deshabilito mux tensión + pinMode(enableTension,OUTPUT); + deshabilitarMuxDeTension(); + + //Comiezo de la comunicación Serial + inicializarComSerial(); + + //Identificación del dispositivo Impetom a través del canal serial + identificarDispositivoImpetom(); + +} + +/* + * Funcion loop +*/ + +void loop() { + + //Recibo por el canal serial el modo de operación en el cual trabajará el dispositivo Impetom + cambioDeModoDeOperacion(adquirirModoDeOperacion()); + + //Ajuste de la frecuencia de operación del DDS a través del canal serial + ajustarFrecuenciaDDS(adquirirFrecuenciaDDS());// + + //Adquisición de datos + if (modoColocacion){ + adquirirDatos(cMuestrasColocacion); + }else{//modo normal + adquirirDatos(cMuestrasReconstruccion); + } + + //EnvÃo el valor de frecuencia utilizada por el dds durante la última adquisición de datos a través del canal serial + enviarDatos(DDSfrecuencyRate); + +} -- GitLab