sábado, 31 de agosto de 2013

Archivos .csv a C++


Archivos .CSV


Registros : Un archivo CSV se compone de una serie de  registros , separadas por línea descansos de algún tipo. 


Campos : Cada registro se compone de  campos , separados por algún otro carácter o una cadena, por lo general una coma o literal  ficha.



"Los ficheros CSV (del inglés comma-separated values) son un tipo de documento en formato abierto sencillo para representar datos en forma de tabla, en las que las columnas se separan por comas (o punto y coma en donde la coma es el separador decimal: España, Francia, Italia...) y las filas por saltos de línea. Los campos que contengan una coma, un salto de línea o una comilla doble deben ser encerrados entre comillas dobles.El formato CSV es muy sencillo y no indica un juego de caracteres concreto, ni cómo van situados los bytes, ni el formato para el salto de línea. Estos puntos deben indicarse muchas veces al abrir el fichero, por ejemplo, con una hoja de cálculo."

Tomado de Wikipedia:

http://es.wikipedia.org/wiki/CSV



Impresión de pantalla con prueba en consola archivo .csv


Con este código se pueden leer los datos de un archivo .csv a consola de c++ en la pantalla de pude ver como seria.


Este codigo es propio:

#include <iostream>
#include <sstream>
#include <string>
#include <fstream>
#include <vector>

using namespace std;
int main()
{
ifstream infile("quad.csv");
string line = "";
vector<string> all_words;
cout << "Csv \n";
while (getline(infile, line))
{
stringstream strstr(line);
string word = "";
while (getline(strstr,word, ','))
{
all_words.push_back(word);

}

for (unsigned i = 0; i < all_words.size(); i++)
{
cout << all_words.at(i)<< "\n";
}

}
system("pause");
return 0;
}


Es una manera de leer el archivo.csv

O tambien se pueden documentar ya que hay unas personas que han hecho una libreria en c++, java u otras plataformas de programacion donde solo incluyen la libreria y se hace el proceso de lectura y escritura aca les dejo el link.

Espero les sirva

http://libcsv.sourceforge.net/ 




lunes, 26 de agosto de 2013

Sensor de Temperatura LM 35

LM35
Sensor de Precisión de 
Temperatura Centígrada
Información LM 35

Descripción
  • El LM35 es un sensor de temperatura con una precisión calibrada de 1ºC y un rango que abarca desde -55º a +150ºC. 
  • L lid li l i l 10 V/ºC l La salida es lineal y equivale a 10mV/ºC por lo 
 
tanto:
  • ‰+1500mV = 150 +1500mV = 150 Cº
  • ‰+250mV = 25ºC
  • ‰-550mV = -55ºC
  • Disponible en distintos encapsulados (TO-92,TO-46, SO-8, TO-220)

Características

  • Calibrado directamente en Calibrado directamente en ºCelsius
  • Escala de factor lineal
  • Exactitud garantizada 0 5 Exactitud garantizada 0.5 Cº (a +25 C) º
  • Rango entre -55º a +150ºC
  • C i t li i t Conveniente para aplicaciones remotas
  • Bajo costo debido al ajuste del wafer-level
  • Opera entre 4 y 30 volts de alimentación
  • Bajo auto-calentamiento 

Conversor Pic 16F877A


Pic 16f9977A Elegido para reto de diseño




– ADC de aproximaciones sucesivas.
– Resolución = 10 Bits (1024 pasos)
– Tensión de referencia configurable: Entre - Vref y +Vref
– ADC de 8 canales.

• Distribución de pines
– 8 canales ADC:
• RA0/AN0 = 2
• RA1/AN1 = 3
• RA2/AN2 = 4
• RA3/AN3 = 5
• RA5/AN4 = 7
• RE0/AN5 = 8
• RE1/AN6 = 9
• RE2/AN7 = 10

– Tensión de referencia:
• Vref- = RA2
• Vref+ = RA3

• Registros asociados:
– Puertos:
• TRISA, TRISE, PORTA, PORTE.
– Interrupciones:
• INTCON, PIE1, PIR1.
– Control:
• ADCON0, ADCON1, ADRESH, ADRESL


  • Según esta información el PIC tiene 10 bits de resolución los cuales utilizaremos 8.
  • Para el rango de cuantizacion el PIC opera entre 2V y 5V entonces su tamaño de cuantizacion seria por escalón seria de 


Reto de implementacion conversor A/D

Objetivos:

1. Analizar los parámetros de los conversores A/D tales como número de bits de conversión, técnica de conversión, tiempo de conversión, tiempo de muestreo y parámetros de la comunicación serial tales como la tasa máxima de transferencia de muestras por unidad de tiempo.

2. Establecer los límites de muestreo para el sistema de conversión analógico digital seleccionado.

3. Diseñar e implementar un software en C++ que permita la captura y almacenamiento de las muestras obtenidas por el sistema en un archivo tipo .csv. El programa debe entregar un reporte donde se especifique claramente el tiempo de muestreo utilizado, el rango de cuantización, tamaño del nivel de cuantización, el tiempo de adquisición y el número de muestras adquiridas.

4. Optimizar el diseño para alcanzar la máxima tasa de muestreo posible y la mayor velocidad de transferencia posible.

5. Implementar un hardware complementario que permita la medida de la variable temperatura y que realice un muestreo y visualización continua de la variable mediante una gráfica de temperatura vs tiempo.

Observaciones:

1. La señal a muestrearse debe estar entre 0 y 1 voltio pico. ¿Como se debe ajustar el rango de cuantización ?

2. La visualización de los resultados debe realizar mediante un programa en Matlab que lea el archivo .csv almacenado y grafique las señales.

3. Los resultados deben socializarse mediante un blog creado para el grupo de laboratorio. 

4. El grupo de trabajo debe generar un documento formato IEEE con los resultados del trabajo realizado.