Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@1:9ebe670d8a19, 2014-12-12 (annotated)
- Committer:
- jgoldberg
- Date:
- Fri Dec 12 01:18:01 2014 +0000
- Revision:
- 1:9ebe670d8a19
- Parent:
- 0:15d3cdafd311
Updated calibration values for small breadboard
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jgoldberg | 0:15d3cdafd311 | 1 | #include "mbed.h" |
jgoldberg | 0:15d3cdafd311 | 2 | #include "util.h" |
jgoldberg | 0:15d3cdafd311 | 3 | #include "weight.h" |
jgoldberg | 0:15d3cdafd311 | 4 | #include "Servo.h" |
jgoldberg | 0:15d3cdafd311 | 5 | |
jgoldberg | 0:15d3cdafd311 | 6 | Servo myservo(PTD4); |
jgoldberg | 0:15d3cdafd311 | 7 | DigitalOut myled1(LED1); |
jgoldberg | 0:15d3cdafd311 | 8 | DigitalOut myled2(LED2); |
jgoldberg | 0:15d3cdafd311 | 9 | DigitalOut myled3(LED3); |
jgoldberg | 0:15d3cdafd311 | 10 | AnalogIn myADC(A0); |
jgoldberg | 0:15d3cdafd311 | 11 | Serial pc(USBTX, USBRX); // tx, rx |
jgoldberg | 0:15d3cdafd311 | 12 | |
jgoldberg | 0:15d3cdafd311 | 13 | int main() { |
jgoldberg | 0:15d3cdafd311 | 14 | int number_pills; |
jgoldberg | 0:15d3cdafd311 | 15 | |
jgoldberg | 0:15d3cdafd311 | 16 | myled1 = 1; //red off |
jgoldberg | 0:15d3cdafd311 | 17 | myled2 = 1; //green off |
jgoldberg | 0:15d3cdafd311 | 18 | myled3 = 1; //blue off |
jgoldberg | 1:9ebe670d8a19 | 19 | //uint16_t val; |
jgoldberg | 1:9ebe670d8a19 | 20 | //uint16_t val_avg; |
jgoldberg | 0:15d3cdafd311 | 21 | while(1) { |
jgoldberg | 1:9ebe670d8a19 | 22 | //val = myADC.read_u16(); |
jgoldberg | 1:9ebe670d8a19 | 23 | //val_avg = mvgAvg(val, 0); |
jgoldberg | 1:9ebe670d8a19 | 24 | //pc.printf("raw: %d avg: %d\n\r", val, val_avg); |
jgoldberg | 0:15d3cdafd311 | 25 | number_pills = measure_pills(); |
jgoldberg | 0:15d3cdafd311 | 26 | //pc.printf("Number of pills: %d\n\r", number_pills); |
jgoldberg | 0:15d3cdafd311 | 27 | wait(0.05); |
jgoldberg | 0:15d3cdafd311 | 28 | } |
jgoldberg | 0:15d3cdafd311 | 29 | } |
jgoldberg | 0:15d3cdafd311 | 30 | |
jgoldberg | 0:15d3cdafd311 | 31 | void run_servo() { |
jgoldberg | 0:15d3cdafd311 | 32 | |
jgoldberg | 0:15d3cdafd311 | 33 | /*wait(0.05); |
jgoldberg | 0:15d3cdafd311 | 34 | for(float p=0; p<1.0; p += 0.1) { |
jgoldberg | 0:15d3cdafd311 | 35 | myservo = p; |
jgoldberg | 0:15d3cdafd311 | 36 | pc.printf("%f\n\r", p); |
jgoldberg | 0:15d3cdafd311 | 37 | wait(0.2); |
jgoldberg | 0:15d3cdafd311 | 38 | }*/ |
jgoldberg | 0:15d3cdafd311 | 39 | |
jgoldberg | 0:15d3cdafd311 | 40 | printf("Servo Calibration Controls:\n"); |
jgoldberg | 0:15d3cdafd311 | 41 | printf("1,2,3 - Position Servo (full left, middle, full right)\n"); |
jgoldberg | 0:15d3cdafd311 | 42 | printf("4,5 - Decrease or Increase range\n"); |
jgoldberg | 0:15d3cdafd311 | 43 | |
jgoldberg | 0:15d3cdafd311 | 44 | float range = 0.0005; |
jgoldberg | 0:15d3cdafd311 | 45 | float position = 0.5; |
jgoldberg | 0:15d3cdafd311 | 46 | |
jgoldberg | 0:15d3cdafd311 | 47 | while(1) { |
jgoldberg | 0:15d3cdafd311 | 48 | switch(pc.getc()) { |
jgoldberg | 0:15d3cdafd311 | 49 | case '1': position = 0.0; break; |
jgoldberg | 0:15d3cdafd311 | 50 | case '2': position = 0.5; break; |
jgoldberg | 0:15d3cdafd311 | 51 | case '3': position = 1.0; break; |
jgoldberg | 0:15d3cdafd311 | 52 | case '4': range += 0.0001; break; |
jgoldberg | 0:15d3cdafd311 | 53 | case '5': range -= 0.0001; break; |
jgoldberg | 0:15d3cdafd311 | 54 | } |
jgoldberg | 0:15d3cdafd311 | 55 | printf("position = %.1f, range = +/-%0.4f\n", position, range); |
jgoldberg | 0:15d3cdafd311 | 56 | myservo.calibrate(range, 45.0); |
jgoldberg | 0:15d3cdafd311 | 57 | myservo = position; |
jgoldberg | 0:15d3cdafd311 | 58 | } |
jgoldberg | 0:15d3cdafd311 | 59 | } |