Sklop koji spaja rad LED-ica i piezzo buzzera stvarajući Božićni ugođaj. 3 LED diode predstavljaju lampice za bor te svijetle izmjenicno. Piezzo buzzer služi za konstantno sviranje božićnih pjesama (Santa claus is coming to town, Jingle Bells, We wish you a merry Christmas). Svakim tonom koji se odsvira na piezzo buzzeru LED-ice naprave jedan krug svijetljenja stvarajući dojam lampica za bor. User_Button tipkalo na pločici zaustavlja rad lampica na 5sek, a integrirana zelena LD2 pokazuje ispravnost programa tako što koristi ticker, te svijetli u intervalima 1 sek.
Dependencies: buzzer
Revision 0:3af3d8a1d741, committed 2020-11-26
- Comitter:
- nzigic
- Date:
- Thu Nov 26 16:23:40 2020 +0000
- Commit message:
- Programski rad Mikroupravljaci
Changed in this revision
diff -r 000000000000 -r 3af3d8a1d741 .gitignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.gitignore Thu Nov 26 16:23:40 2020 +0000 @@ -0,0 +1,4 @@ +.build +.mbed +projectfiles +*.py*
diff -r 000000000000 -r 3af3d8a1d741 CONTRIBUTING.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CONTRIBUTING.md Thu Nov 26 16:23:40 2020 +0000 @@ -0,0 +1,5 @@ +# Contributing to Mbed OS + +Mbed OS is an open-source, device software platform for the Internet of Things. Contributions are an important part of the platform, and our goal is to make it as simple as possible to become a contributor. + +To encourage productive collaboration, as well as robust, consistent and maintainable code, we have a set of guidelines for [contributing to Mbed OS](https://os.mbed.com/docs/mbed-os/latest/contributing/index.html).
diff -r 000000000000 -r 3af3d8a1d741 Flasher.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Flasher.cpp Thu Nov 26 16:23:40 2020 +0000 @@ -0,0 +1,13 @@ +#include "Flasher.h" +#include "mbed.h" +Flasher::Flasher(PinName pin) : _pin(pin) +{ + _pin = 0; +} +void Flasher::flash(int n) +{ + for(int i=0; i<n*1; i++) { + _pin = !_pin; + wait(0.025); + } +} \ No newline at end of file
diff -r 000000000000 -r 3af3d8a1d741 Flasher.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Flasher.h Thu Nov 26 16:23:40 2020 +0000 @@ -0,0 +1,12 @@ +#ifndef MBED_FLASHER_H +#define MBED_FLASHER_H +#include "mbed.h" +class Flasher +{ +public: + Flasher(PinName pin); + void flash(int n); +private: + DigitalOut _pin; +}; +#endif \ No newline at end of file
diff -r 000000000000 -r 3af3d8a1d741 README.md --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.md Thu Nov 26 16:23:40 2020 +0000 @@ -0,0 +1,64 @@ +![](./resources/official_armmbed_example_badge.png) +# Blinky Mbed OS example + +The example project is part of the [Arm Mbed OS Official Examples](https://os.mbed.com/code/) and is the [getting started example for Mbed OS](https://os.mbed.com/docs/mbed-os/v5.14/quick-start/index.html). It contains an application that repeatedly blinks an LED on supported [Mbed boards](https://os.mbed.com/platforms/). + +You can build the project with all supported [Mbed OS build tools](https://os.mbed.com/docs/mbed-os/latest/tools/index.html). However, this example project specifically refers to the command-line interface tool [Arm Mbed CLI](https://github.com/ARMmbed/mbed-cli#installing-mbed-cli). +(Note: To see a rendered example you can import into the Arm Online Compiler, please see our [import quick start](https://os.mbed.com/docs/mbed-os/latest/quick-start/online-with-the-online-compiler.html#importing-the-code).) + +1. [Install Mbed CLI](https://os.mbed.com/docs/mbed-os/latest/quick-start/offline-with-mbed-cli.html). + +1. Clone this repository on your system, and change the current directory to where the project was cloned: + + ```bash + $ git clone git@github.com:armmbed/mbed-os-example-blinky && cd mbed-os-example-blinky + ``` + + Alternatively, you can download the example project with Arm Mbed CLI using the `import` subcommand: + + ```bash + $ mbed import mbed-os-example-blinky && cd mbed-os-example-blinky + ``` + + +## Application functionality + +The `main()` function is the single thread in the application. It toggles the state of a digital output connected to an LED on the board. + +## Building and running + +1. Connect a USB cable between the USB port on the board and the host computer. +2. <a name="build_cmd"></a> Run the following command to build the example project and program the microcontroller flash memory: + ```bash + $ mbed compile -m <TARGET> -t <TOOLCHAIN> --flash + ``` +The binary is located at `./BUILD/<TARGET>/<TOOLCHAIN>/mbed-os-example-blinky.bin`. + +Alternatively, you can manually copy the binary to the board, which you mount on the host computer over USB. + +Depending on the target, you can build the example project with the `GCC_ARM`, `ARM` or `IAR` toolchain. After installing Arm Mbed CLI, run the command below to determine which toolchain supports your target: + +```bash +$ mbed compile -S +``` + +## Expected output +The LED on your target turns on and off every 500 milliseconds. + + +## Troubleshooting +If you have problems, you can review the [documentation](https://os.mbed.com/docs/latest/tutorials/debugging.html) for suggestions on what could be wrong and how to fix it. + +## Related Links + +* [Mbed OS Stats API](https://os.mbed.com/docs/latest/apis/mbed-statistics.html). +* [Mbed OS Configuration](https://os.mbed.com/docs/latest/reference/configuration.html). +* [Mbed OS Serial Communication](https://os.mbed.com/docs/latest/tutorials/serial-communication.html). +* [Mbed OS bare metal](https://os.mbed.com/docs/mbed-os/latest/reference/mbed-os-bare-metal.html). +* [Mbed boards](https://os.mbed.com/platforms/). + +### License and contributions + +The software is provided under Apache-2.0 license. Contributions to this project are accepted under the same license. Please see contributing.md for more info. + +This project contains code from other projects. The original license text is included in those source files. They must comply with our license guide.
diff -r 000000000000 -r 3af3d8a1d741 buzzer.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/buzzer.lib Thu Nov 26 16:23:40 2020 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/khodak/code/buzzer/#857083873b09
diff -r 000000000000 -r 3af3d8a1d741 main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Nov 26 16:23:40 2020 +0000 @@ -0,0 +1,108 @@ +#include "mbed.h" +#include "Flasher.h" +#include "buzzer.h" + +Beep buzzer(D2); +Flasher led1(D4); +Flasher led2(D5); +Flasher led3(D6); +InterruptIn button(USER_BUTTON); +DigitalOut workingLED(LED2); +Timer debounce; +Ticker flipper; + +//frekvencija melodija +float a4=440.00; +float b3=246.94; +float b4=493.88; +float c4=261.63; +float c5=523.25; +float c5s=554.40; +float d4=293.66; +float d5=587.33; +float e4=329.63; +float e5=659.25; +float f4=349.23; +float f4s=370.00; +float f5=698.46; +float g4=392.00; +float g4s=415.30; +float g5=783.99; + +//trajanje tona +float t1=16; +float t2=8; +float t3=4; +float t4=2; +float t5=1; + +//Santa claus is coming to town +float santa_freq[28] = {g4,e4,f4,g4,g4,g4,a4,b4,c5,c5,c5,e4,f4,g4,g4,g4,a4,g4,f4,f4,e4,g4,c4,e4,d4,f4,b3,c4}; +float santa_tempo[28] = {t2,t2,t2,t3,t3,t3,t2,t2,t3,t3,t3,t2,t2,t3,t3,t3,t2,t2,t3,t4,t3,t3,t3,t3,t3,t4,t3,t5}; + +//Jingle Bells +float jingle_freq[26] = {e5,e5,e5,e5,e5,e5,e5,g5,c5,d5,e5,f5,f5,f5,f5,f5,e5,e5,e5,e5,e5,d5,d5,e5,d5,g5}; +float jingle_tempo[26] = {t2,t2,t3,t2,t2,t3,t2,t2,t2,t2,t4,t2,t2,t2,t2,t2,t2,t2,t1,t1,t2,t2,t2,t2,t3,t3,}; + +//We wish you a merry Christmas +float wish_freq[30] = {e4,a4,a4,b4,a4,g4s,f4s,f4s,f4s,b4,b4,c5s,b4,a4,g4s,e4,e4,c5s,c5s,d5,c5s,b4,a4,f4s,e4,e4,f4s,b4,g4s,a4}; +float wish_tempo[30] = {t3,t3,t2,t2,t2,t2,t3,t3,t3,t3,t2,t2,t2,t2,t3,t3,t3,t3,t2,t2,t2,t2,t3,t3,t2,t2,t3,t3,t3,t4}; + +float time_delay = 0.5; +void flip(void); +void interrupt(void); + +int main() +{ + debounce.start(); + button.rise(&interrupt); + flipper.attach(&flip,time_delay); + int i,j; + + while(1) { + + for(i=0; i<28; i++) { + buzzer.beep(santa_freq[i], santa_tempo[i]); + led1.flash(1); + led2.flash(1); + led3.flash(1); + wait(1/santa_tempo[i]); + } + wait(1); + + for(j=0; j<2; j++) { + for(i=0; i<26; i++) { + buzzer.beep(jingle_freq[i], jingle_tempo[i]); + led1.flash(1); + led2.flash(1); + led3.flash(1); + wait(1/jingle_tempo[i]); + } + } + wait(1); + + for(i=0; i<30; i++) { + buzzer.beep(wish_freq[i], wish_tempo[i]); + led1.flash(1); + led2.flash(1); + led3.flash(1); + wait(1/wish_tempo[i]); + } + wait(2); + } +} + +void flip() +{ + workingLED = !workingLED; +} + +//Zaustavlja rad na 5 sec +void interrupt() +{ + + if (debounce.read_ms()>200) { + wait_us(5000000); + } + debounce.reset(); +}
diff -r 000000000000 -r 3af3d8a1d741 mbed-os.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-os.lib Thu Nov 26 16:23:40 2020 +0000 @@ -0,0 +1,1 @@ +https://github.com/ARMmbed/mbed-os/#cf4f12a123c05fcae83fc56d76442015cb8a39e9
diff -r 000000000000 -r 3af3d8a1d741 resources/official_armmbed_example_badge.png Binary file resources/official_armmbed_example_badge.png has changed