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.
Dependencies: Data_Clock_Pair Seeed_Chainable_LED Seeed_Four_Digit_Disp Seeed_IR_Temp_Sensor Seeed_Led_Bar
Fork of Seeed_Grove_4_Digit_Display_Clock by
Revision 6:14929f54ed6f, committed 2017-04-20
- Comitter:
- tulanthoar
- Date:
- Thu Apr 20 11:19:18 2017 -0600
- Parent:
- 5:d28207a2d2a6
- Child:
- 7:b16b9733d859
- Commit message:
- Add my own implimentation of LED bar, four digit disp, and chainable LED.
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Tue Apr 11 09:14:06 2017 -0600
+++ b/main.cpp Thu Apr 20 11:19:18 2017 -0600
@@ -1,103 +1,45 @@
#include <algorithm>
#include <cmath>
#include "mbed.h"
+#include "SeeedLedBar.h"
+#include "SeeedFourDigitDisp.h"
+#include "SeeedQTouch.h"
+#include "SeeedChainableLED.h"
Serial pc(SERIAL_TX, SERIAL_RX);
-DigitalOut clk(PE_9);
-DigitalOut dat(PE_11);
-DigitalOut led(LED1);
+DigitalOut led(LED1);
AnalogIn knob(PA_3);
-// Avoid name conflict
-#define LED_GLB_CMDMODE 0x00 // Work on 8-bit mode
-#define LED_GLB_ON 0xff // 8-bit 1 data
-#define LED_GLB_OFF 0x00 // 8-bit 0 data
-
-// Send 16 bits of data
-void sendData(unsigned int data)
-{
- for (int i = 0; i < 16; i++)
- {
- wait_us(10);
- unsigned int state = (data & 0x8000) ? 1 : 0;
- dat = state;
-
- wait_us(10);
- clk = !clk;
-
- data <<= 1;
- }
-}
-
-// Send the latch command
-void latchData()
-{
- dat = 0;
- wait_us(100);
-
- for (int i = 0; i < 4; i++)
- {
- wait_us(10);
- dat = 1;
- wait_us(10);
- dat = 0;
- }
-}
-
-// each element in the state will hold the brightness level
-// 00000000 darkest
-// 00000011 brighter
-// ........
-// 11111111 brightest
-void setData(int __state[])
-{
-
- sendData(LED_GLB_CMDMODE);
- for (int i = 0; i < 10; i++)
- {
- // Go forward on __state
- sendData(__state[i]);
- }
-
- // Two extra empty bits for padding the command to the correct length
- sendData(0x00);
- sendData(0x00);
-
- latchData();
-}
+int main() {
+ pc.printf("\n\nstarting algorithm\n\n");
+ SeeedLedBar ledBar = SeeedLedBar(PE_9, PF_13);
+ SeeedFourDigitDisp disp = SeeedFourDigitDisp(PE_13, PF_15);
+ SeeedQTouch qTouch = SeeedQTouch(PB_9, PB_8);
+ SeeedChainableLED led_chain = SeeedChainableLED(PE_11, PF_14);
-
-int main()
-{
- pc.printf("\n\nstarting algorithm\n\n");
- int led_bar[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
- int not_led_bar[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
+ disp.set_digit(0,0);
int knob_led_bar[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
- setData(led_bar);
- while (1)
- {
+ ledBar.ten_on();
+ disp.clear_display();
+ led_chain.turn_on();
+ led_chain.set_color_rgb(100,200,100);
+ while (1) {
+ led = !led;
float led_frac = knob.read();
- pc.printf("knob is %f\n", led_frac);
int led_percent = floor(led_frac * 100);
int tens = floor(led_frac * 10);
- pc.printf("percent is %i\n", led_percent);
int ones = led_percent % 10;
ones = floor(ones * 10 / 8);
if (ones > 8) ones = 8;
int ones_led = ones * 16;
- pc.printf("tens is %i\n", tens);
for (int i = 0; i < 10; ++i) knob_led_bar[i] = 0x00;
- for (int i = 0; i < tens; ++i)
- knob_led_bar[i] = 0xff;
+ for (int i = 0; i < tens; ++i) knob_led_bar[i] = 0xff;
knob_led_bar[tens] = ones_led;
- setData(led_bar);
- wait_ms(100);
- setData(knob_led_bar);
- wait_ms(100);
- setData(not_led_bar);
- pc.printf("iteration\n");
- led = !led;
- wait_ms(100);
+ ledBar.ten_set(knob_led_bar);
+ disp.set_digit(2,tens);
+ disp.set_digit(3,ones);
+ int eightBitInput = led_frac * 255;
+ led_chain.set_color_rgb(eightBitInput, eightBitInput, eightBitInput);
}
}
