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 let totalPills: Int = 16
var usedPills: Int = 0 var usedPills: Int = 0
var remainingPills: Int = 0 var remainingPills: Int = 0
let updateFreq: Float = 2.0 let updateFreq: Float = 0.5
weak var timer: Timer? weak var timer: Timer?
override func viewDidLoad() { 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_BIT_3 33
#define MUX_COM 32 #define MUX_COM 32
#define RAIL_EVEN 15 #define RAIL_0 14
#define RAIL_ODD 14 #define RAIL_1 15
#define PILL_SENSE 21 #define CASSETTE_SENSE 21
#define BATTERY_PIN 35 #define BATTERY_PIN 35
@ -86,18 +86,18 @@ void setup() {
pinMode(MUX_BIT_1, OUTPUT); pinMode(MUX_BIT_1, OUTPUT);
pinMode(MUX_BIT_2, OUTPUT); pinMode(MUX_BIT_2, OUTPUT);
pinMode(MUX_BIT_3, OUTPUT); pinMode(MUX_BIT_3, OUTPUT);
pinMode(MUX_COM, INPUT_PULLUP); pinMode(MUX_COM, INPUT_PULLDOWN);
pinMode(RAIL_EVEN, OUTPUT); pinMode(RAIL_0, OUTPUT);
pinMode(RAIL_ODD, OUTPUT); pinMode(RAIL_1, OUTPUT);
pinMode(PILL_SENSE, INPUT_PULLUP); pinMode(CASSETTE_SENSE, INPUT_PULLUP);
pinMode(BATTERY_PIN, INPUT); pinMode(BATTERY_PIN, INPUT);
digitalWrite(LED_PIN, LOW); digitalWrite(LED_PIN, LOW);
digitalWrite(RAIL_EVEN, HIGH); digitalWrite(RAIL_0, LOW);
digitalWrite(RAIL_ODD, HIGH); digitalWrite(RAIL_1, LOW);
digitalWrite(MUX_BIT_0, LOW); digitalWrite(MUX_BIT_0, LOW);
digitalWrite(MUX_BIT_1, LOW); digitalWrite(MUX_BIT_1, LOW);
@ -126,8 +126,8 @@ bool seekValueFromMatrix(int column_id, int row_id) {
Serial.println("@@@@@@@@@@@@@@@@@@@@ BINARY ERROR!!! @@@@@@@@@@@@@@@@@@@@"); Serial.println("@@@@@@@@@@@@@@@@@@@@ BINARY ERROR!!! @@@@@@@@@@@@@@@@@@@@");
} }
int rail_to_GND = 0; int rail_to_HIGH = 0;
int rail_to_INPUT = 0; int rail_to_LOW = 0;
// int mux_bit_0 = 0; // int mux_bit_0 = 0;
// int mux_bit_1 = 0; // int mux_bit_1 = 0;
// int mux_bit_2 = 0; // int mux_bit_2 = 0;
@ -135,11 +135,11 @@ bool seekValueFromMatrix(int column_id, int row_id) {
bool is_pill_present = false; bool is_pill_present = false;
if (column_id == 0) { if (column_id == 0) {
rail_to_GND = RAIL_EVEN; rail_to_HIGH = RAIL_0;
rail_to_INPUT = RAIL_ODD; rail_to_LOW = RAIL_1;
} else if (column_id == 1) { } else if (column_id == 1) {
rail_to_GND = RAIL_ODD; rail_to_HIGH = RAIL_1;
rail_to_INPUT = RAIL_EVEN; rail_to_LOW = RAIL_0;
} else { return -1;} } else { return -1;}
// mux_bit_0 = row_id & 0b0001; // 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_2 = row_id & 0b0100;
// mux_bit_3 = row_id & 0b1000; // mux_bit_3 = row_id & 0b1000;
pinMode(rail_to_INPUT, INPUT_PULLUP); digitalWrite(rail_to_HIGH, HIGH);
digitalWrite(rail_to_GND, LOW); digitalWrite(rail_to_LOW, LOW);
digitalWrite(MUX_BIT_0, row_id & 0b0001); digitalWrite(MUX_BIT_0, row_id & 0b0001);
digitalWrite(MUX_BIT_1, row_id & 0b0010); digitalWrite(MUX_BIT_1, row_id & 0b0010);
@ -180,7 +180,7 @@ bool seekValueFromMatrix(int column_id, int row_id) {
// } // }
delay(10); delay(10);
if (digitalRead(PILL_SENSE) == LOW){ if (digitalRead(MUX_COM) == HIGH){
is_pill_present = true; is_pill_present = true;
} }
@ -199,9 +199,8 @@ bool seekValueFromMatrix(int column_id, int row_id) {
Serial.println(is_pill_present); Serial.println(is_pill_present);
Serial.println("########## END COMPUTED BINARY ##########"); Serial.println("########## END COMPUTED BINARY ##########");
pinMode(rail_to_INPUT, OUTPUT); digitalWrite(RAIL_0, LOW);
digitalWrite(RAIL_EVEN, HIGH); digitalWrite(RAIL_1, LOW);
digitalWrite(RAIL_ODD, HIGH);
digitalWrite(MUX_BIT_0, LOW); digitalWrite(MUX_BIT_0, LOW);
digitalWrite(MUX_BIT_1, LOW); digitalWrite(MUX_BIT_1, LOW);
@ -214,7 +213,7 @@ bool seekValueFromMatrix(int column_id, int row_id) {
int getPillCount() { int getPillCount() {
int total_pill_count = 0; int total_pill_count = 0;
if (digitalRead(PILL_SENSE) == LOW) { if (digitalRead(CASSETTE_SENSE) == LOW) {
Serial.println("PROBE_ATTACHED"); Serial.println("PROBE_ATTACHED");
for (int col = 0; col < 2; col++){ for (int col = 0; col < 2; col++){