Bienvenido: Ingresar
location: attachment:PCF8591PG.c de WebHome/TrabajosPracticos/ConversorAD

Adjunto 'PCF8591PG.c'

Descargar

   1 #include <stdio.h>
   2 #include <fcntl.h>
   3 #include <unistd.h>
   4 #include <sys/ioctl.h>
   5 #include <linux/i2c-dev.h>
   6 #include <ncurses.h> /* libncurses5-dev */
   7 
   8 /*
   9 PCF8591PG.c
  10 
  11 Instalar curses:
  12 
  13 sudo apt-get install libncurses5-dev
  14 
  15 Compilar:
  16 
  17 gcc -o PCF8591PG PCF8591PG.c -lcurses -lpigpio -lpthread
  18 
  19 Run:
  20 
  21 sudo ./PCF8591
  22 */
  23 
  24 /*
  25 Connect Pi 3V3 - VCC, Ground - Ground, SDA - SDA, SCL - SCL.
  26 */
  27 
  28 #define PCF8591_I2C_ADDR 0x48
  29 
  30 /*
  31     P4 The thermister voltage is provided at AIN 2.
  32     P5 The photocell voltage is provided at AIN 1.
  33     P6 The single turn 10K ohm trim pot voltage is provided at AIN 0.
  34 */
  35 
  36 /*
  37 7 6 5 4 3 2 1 0
  38 0 X X X 0 X X X
  39   | | |   | | |
  40   A B B   C D D
  41 
  42 0 1 0 0 0 1 0 0
  43 
  44 A 0 D/A inactive
  45   1 D/A active
  46 
  47 B 00 single ended inputs
  48   01 differential inputs
  49   10 single ended and differential
  50   11 two differential inputs
  51 
  52 C 0 no auto inc
  53   1 auto inc
  54 
  55 D 00 select channel 0
  56   01 select channel 1
  57   10 select channel 2
  58   11 select channel 3
  59 
  60 */
  61 
  62 int main(int argc, char *argv[])
  63 {
  64    int i;
  65    int r;
  66    int handle;
  67    unsigned char command;
  68    unsigned char value[4];
  69    unsigned char str[8];
  70    char *filename = (char*)"/dev/i2c-1";
  71 
  72    int j;
  73    int key;
  74 
  75    if (gpioInitialise() < 0) return 1;
  76 
  77    initscr();
  78    noecho();
  79    nodelay(stdscr, true);
  80    curs_set(0);
  81 
  82    printw("PCF8591, any key to quit.");
  83 
  84    mvaddstr(10, 0, "Resistor");
  85    mvaddstr(12, 0, "Brightness");
  86    mvaddstr(14, 0, "Temperature");
  87    mvaddstr(16, 0, "GND");
  88 
  89    refresh();
  90 
  91    handle = i2cOpen(1, PCF8591_I2C_ADDR, 0);
  92 
  93 
  94    while (1)
  95    {
  96       for (i=0; i<4; i++)
  97       {
  98          command = 0x40 | ((i+1) & 0x03); // habilita la salida | selecciona el canal de lectura i
  99 
 100          i2cWriteDevice(handle, &command, 1);	//escribe la palabra de control
 101 
 102          usleep(20000);
 103 
 104          value[i] = i2cReadByte(handle);	//lee los datos de la entrada seleccionada
 105 
 106          sprintf(str, "%3d", value[i]);		//imprime en pantalla el valor leido
 107          mvaddstr(10+i+i, 12, str);
 108          value[i] = value[i] / 4;
 109          move(10 + i + i, 16);
 110 
 111          for(j = 0; j < 64; j++)
 112             if(j < value[i]) addch('*'); else addch(' ');
 113       }
 114 
 115       refresh();
 116 
 117       key = getch();
 118 
 119       if  (key != -1)                   break;
 120    }
 121 
 122    endwin();
 123  
 124    i2cClose(handle);
 125 
 126    gpioTerminate();
 127 
 128    return (0);
 129 }

Archivos adjuntos

Para referirse a los adjuntos de una página, usa attachment:nombredelarchivo, como se muestra abajo en la lista de archivos. NO uses la URL del enlace [get], ya que puede cambiar fácilmente y dejar de funcionar.
  • [obtener | ver] (2019-09-02 11:56:18, 232.2 KB) [[attachment:PCF8591.pdf]]
  • [obtener | ver] (2019-09-02 11:56:18, 1.3 KB) [[attachment:PCF8591H.c]]
  • [obtener | ver] (2019-09-02 11:56:18, 17.7 KB) [[attachment:PCF8591I2C.pdf]]
  • [obtener | ver] (2019-09-02 11:56:18, 2.2 KB) [[attachment:PCF8591PG.c]]
  • [obtener | ver] (2019-09-02 11:56:18, 1.6 KB) [[attachment:PCF8591W.c]]
 All files | Selected Files: delete move to page copy to page

No tienes permisos para adjuntar un archivo a esta página.