Автор Тема: pcf8591  (Прочитано 344 раз)

Оффлайн zevs3344

pcf8591
« : Апрель 10, 2016, 08:28:07 pm »
Развлекаюсь с pcf8591.
хотел бы ужо написать гайд о ней для нашего зверька, но очень расстроен погрешностью.
Подключается pcf8591 как и все: sda/scl. по умолчанию, 0х48 адрес.
Код такой:
#include <wiringPi.h>
#include <pcf8591.h>
main ()
{
 wiringPiSetup () ;
  pcf8591Setup (200, 0x48) ;
for (;;){
int a1 = analogRead (200);
printf ("a1: %4d\n", a1);
delay (500);
}
}
Крутит, вертит нормально. (опрашивает А0 ногу и возвращает значение).
(255,255,255,255....255) если ничего не подключено.

пробую код такой:
#include <wiringPi.h>
#include <pcf8591.h>
main ()
{
  wiringPiSetup () ;
  pcf8591Setup (200, 0x48) ;
  for (;;){
printf ("%4d %4d %4d %4d\n", analogRead (200),analogRead (201),analogRead (202),analogRead (203)) ;
delay (500);
}}
выдает белиберду.
67 2500 0 100
45 67 23 14
и т.д.
ставил delay (500); после каждого считывания ножек. результат аналогичен...
Есть идеи? У кого есть этот чудо pcf?

Оффлайн zevs3344

Re: pcf8591
« Ответ #1 : Апрель 10, 2016, 08:41:42 pm »
Вроде победил.
#include <wiringPi.h>
#include <pcf8591.h>
#include <stdio.h>
#include <stdlib.h>
int main (int argc,char* argv[]){
wiringPiSetup();
pcf8591Setup(200, 0x48);
delay(100);
int i = 200+atoi(argv[1])+0;
printf ("%4d\n",analogRead(i));
}
Компиляция
gcc -Wall -o pcf pcf.c -lwiringPi
Запуск
./pcf 0
./pcf 1
./pcf 2
./pcf 3
т.е. опрашивать ножки по очереди  8)

Оффлайн Vital864

  • Посвященный
  • ***
  • Сообщений: 246
  • Лайков: 36
  • Карма: +4/-0
  • Orange Pi Plus
    • Просмотр профиля
Re: pcf8591
« Ответ #2 : Апрель 10, 2016, 09:57:02 pm »
zevs3344, ты как мои мысли читаешь! :)
Orange Pi Plus

Оффлайн zevs3344

Re: pcf8591
« Ответ #3 : Апрель 11, 2016, 10:58:52 pm »
еще есть Pcf8575 но она не дешевая и получается типа проще взять две PCF8574 чем одну ее)