This commit is contained in:
Max 2021-04-25 14:45:43 +01:00
parent 132d3bc661
commit 45b3e377ca
3 changed files with 73 additions and 23 deletions

View File

@ -23,7 +23,7 @@ class ViewController: UIViewController {
let totalPills: Int = 16
var usedPills: Int = 0
var remainingPills: Int = 0
let updateFreq: Float = 2.0
let updateFreq: Float = 0.5
weak var timer: Timer?
override func viewDidLoad() {

View File

@ -0,0 +1,51 @@
#define MUX_BIT_0 13
#define MUX_BIT_1 12
#define MUX_BIT_2 27
#define MUX_BIT_3 33
#define MUX_COM 32
#define RAIL_0 14
#define RAIL_1 15
#define PILL_SENSE 21
#define BATTERY_PIN 35
void setup() {
Serial.begin(115200);
pinMode(MUX_BIT_0, OUTPUT);
pinMode(MUX_BIT_1, OUTPUT);
pinMode(MUX_BIT_2, OUTPUT);
pinMode(MUX_BIT_3, OUTPUT);
// pinMode(MUX_COM, INPUT);
pinMode(MUX_COM, INPUT_PULLDOWN);
// pinMode(MUX_COM, INPUT_PULLUP);
pinMode(RAIL_0, OUTPUT);
pinMode(RAIL_1, OUTPUT);
digitalWrite(RAIL_0, LOW);
digitalWrite(RAIL_1, LOW);
digitalWrite(MUX_BIT_0, LOW);
digitalWrite(MUX_BIT_1, LOW);
digitalWrite(MUX_BIT_2, LOW);
digitalWrite(MUX_BIT_3, LOW);
}
void loop() {
digitalWrite(RAIL_0, HIGH);
digitalWrite(RAIL_1, LOW);
digitalWrite(MUX_BIT_0, LOW);
digitalWrite(MUX_BIT_1, LOW);
digitalWrite(MUX_BIT_2, LOW);
digitalWrite(MUX_BIT_3, LOW);
delay(200);
// Serial.println(analogRead(MUX_COM));
Serial.println(digitalRead(MUX_COM));
}

View File

@ -26,10 +26,10 @@
#define MUX_BIT_3 33
#define MUX_COM 32
#define RAIL_EVEN 15
#define RAIL_ODD 14
#define RAIL_0 14
#define RAIL_1 15
#define PILL_SENSE 21
#define CASSETTE_SENSE 21
#define BATTERY_PIN 35
@ -86,18 +86,18 @@ void setup() {
pinMode(MUX_BIT_1, OUTPUT);
pinMode(MUX_BIT_2, OUTPUT);
pinMode(MUX_BIT_3, OUTPUT);
pinMode(MUX_COM, INPUT_PULLUP);
pinMode(MUX_COM, INPUT_PULLDOWN);
pinMode(RAIL_EVEN, OUTPUT);
pinMode(RAIL_ODD, OUTPUT);
pinMode(RAIL_0, OUTPUT);
pinMode(RAIL_1, OUTPUT);
pinMode(PILL_SENSE, INPUT_PULLUP);
pinMode(CASSETTE_SENSE, INPUT_PULLUP);
pinMode(BATTERY_PIN, INPUT);
digitalWrite(LED_PIN, LOW);
digitalWrite(RAIL_EVEN, HIGH);
digitalWrite(RAIL_ODD, HIGH);
digitalWrite(RAIL_0, LOW);
digitalWrite(RAIL_1, LOW);
digitalWrite(MUX_BIT_0, LOW);
digitalWrite(MUX_BIT_1, LOW);
@ -126,8 +126,8 @@ bool seekValueFromMatrix(int column_id, int row_id) {
Serial.println("@@@@@@@@@@@@@@@@@@@@ BINARY ERROR!!! @@@@@@@@@@@@@@@@@@@@");
}
int rail_to_GND = 0;
int rail_to_INPUT = 0;
int rail_to_HIGH = 0;
int rail_to_LOW = 0;
// int mux_bit_0 = 0;
// int mux_bit_1 = 0;
// int mux_bit_2 = 0;
@ -135,11 +135,11 @@ bool seekValueFromMatrix(int column_id, int row_id) {
bool is_pill_present = false;
if (column_id == 0) {
rail_to_GND = RAIL_EVEN;
rail_to_INPUT = RAIL_ODD;
rail_to_HIGH = RAIL_0;
rail_to_LOW = RAIL_1;
} else if (column_id == 1) {
rail_to_GND = RAIL_ODD;
rail_to_INPUT = RAIL_EVEN;
rail_to_HIGH = RAIL_1;
rail_to_LOW = RAIL_0;
} else { return -1;}
// mux_bit_0 = row_id & 0b0001;
@ -147,8 +147,8 @@ bool seekValueFromMatrix(int column_id, int row_id) {
// mux_bit_2 = row_id & 0b0100;
// mux_bit_3 = row_id & 0b1000;
pinMode(rail_to_INPUT, INPUT_PULLUP);
digitalWrite(rail_to_GND, LOW);
digitalWrite(rail_to_HIGH, HIGH);
digitalWrite(rail_to_LOW, LOW);
digitalWrite(MUX_BIT_0, row_id & 0b0001);
digitalWrite(MUX_BIT_1, row_id & 0b0010);
@ -180,7 +180,7 @@ bool seekValueFromMatrix(int column_id, int row_id) {
// }
delay(10);
if (digitalRead(PILL_SENSE) == LOW){
if (digitalRead(MUX_COM) == HIGH){
is_pill_present = true;
}
@ -199,9 +199,8 @@ bool seekValueFromMatrix(int column_id, int row_id) {
Serial.println(is_pill_present);
Serial.println("########## END COMPUTED BINARY ##########");
pinMode(rail_to_INPUT, OUTPUT);
digitalWrite(RAIL_EVEN, HIGH);
digitalWrite(RAIL_ODD, HIGH);
digitalWrite(RAIL_0, LOW);
digitalWrite(RAIL_1, LOW);
digitalWrite(MUX_BIT_0, LOW);
digitalWrite(MUX_BIT_1, LOW);
@ -214,7 +213,7 @@ bool seekValueFromMatrix(int column_id, int row_id) {
int getPillCount() {
int total_pill_count = 0;
if (digitalRead(PILL_SENSE) == LOW) {
if (digitalRead(CASSETTE_SENSE) == LOW) {
Serial.println("PROBE_ATTACHED");
for (int col = 0; col < 2; col++){