#include "Arduino.h"
#define DOUT 2
#define PD_SCK 3
#define factor 0.00959 //40Kg china
unsigned long value;
long weight;
long get_weight()
{
digitalWrite(PD_SCK, LOW);
delayMicroseconds(1);
// wait for the chip to become ready:
while (digitalRead(DOUT) == HIGH);
value = 0;
for (int i = 23; i > -1; i--){ //bitWrite23 =bit24
digitalWrite(PD_SCK, HIGH);
delayMicroseconds(1);
digitalWrite(PD_SCK, LOW);
if (digitalRead(DOUT) == HIGH){bitSet(value, i);}
}
// para que siga leyendo muestras a 10Hz:
digitalWrite(PD_SCK, HIGH);
delayMicroseconds(1);
digitalWrite(PD_SCK, LOW);
delayMicroseconds(1);
return value; // todos 1 = 1677215
}
void setup() {
Serial.begin(9600);
pinMode(DOUT, INPUT);
pinMode(PD_SCK, OUTPUT);
}
void loop() {
weight = get_weight();
float redondeado;
redondeado = round(weight*factor);
Serial.println(redondeado,0);
}
Нашёл вот такой скетч. OUT на 2pin, SCK на 3pin, питание 5В. В мониторе порта появились постоянно бегающие значения. К датчику прицепил трубку от капельницы и шприц 5мл. Ну и соответственно показания меняются. Осталось как-то это дело причесать, чтоб остаток воды в бочке отображался в %. В состоянии покоя без трубки сенсор показывает 6050, при максимальном давлении\разряжении 80447. Теперь осталось как-то подружить с flprog.