![](/media/cache/group/mehmet_akif_arvas.jpg.50x50_q85.jpg)
rtos ile keypad, servo, step ve lcd ekran kontrolu
Dependencies: beep TextLCD keypad
main.cpp@0:2680050cef72, 2019-05-06 (annotated)
- Committer:
- marvas
- Date:
- Mon May 06 10:32:55 2019 +0000
- Revision:
- 0:2680050cef72
rtos ile keypad, servo, step ve lcd ekran kontrolu
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
marvas | 0:2680050cef72 | 1 | #include "mbed.h" |
marvas | 0:2680050cef72 | 2 | |
marvas | 0:2680050cef72 | 3 | #include "TextLCD.h" |
marvas | 0:2680050cef72 | 4 | #include <iostream>//cin ve cout |
marvas | 0:2680050cef72 | 5 | #include "beep.h" |
marvas | 0:2680050cef72 | 6 | #include "Keypad.h" |
marvas | 0:2680050cef72 | 7 | char x; |
marvas | 0:2680050cef72 | 8 | TextLCD lcd(D7, D6, D5, D4, D3, D2); // rs, e, d4-d7 |
marvas | 0:2680050cef72 | 9 | // Define your own keypad values |
marvas | 0:2680050cef72 | 10 | char key_table[] = { '1', '2', '3', 'A', |
marvas | 0:2680050cef72 | 11 | '4', '5', '6', 'B', |
marvas | 0:2680050cef72 | 12 | '7', '8', '9', 'C', |
marvas | 0:2680050cef72 | 13 | '*', '0', '#', 'D' |
marvas | 0:2680050cef72 | 14 | }; |
marvas | 0:2680050cef72 | 15 | |
marvas | 0:2680050cef72 | 16 | |
marvas | 0:2680050cef72 | 17 | Beep buzzer(A0); |
marvas | 0:2680050cef72 | 18 | |
marvas | 0:2680050cef72 | 19 | BusOut step(D8,D9,D10,D11); |
marvas | 0:2680050cef72 | 20 | DigitalOut servo(D12); |
marvas | 0:2680050cef72 | 21 | Serial pc(USBTX,USBRX); |
marvas | 0:2680050cef72 | 22 | DigitalOut led(LED1); |
marvas | 0:2680050cef72 | 23 | void servometot(); |
marvas | 0:2680050cef72 | 24 | void stepmetot(); |
marvas | 0:2680050cef72 | 25 | void lcdmetot(); |
marvas | 0:2680050cef72 | 26 | Thread servomotor,stepmotor,lcdekran; |
marvas | 0:2680050cef72 | 27 | |
marvas | 0:2680050cef72 | 28 | |
marvas | 0:2680050cef72 | 29 | int main() |
marvas | 0:2680050cef72 | 30 | { |
marvas | 0:2680050cef72 | 31 | Keypad key(PC_4, PB_13, PB_14, PB_15, PB_1, PB_2, PB_12, PA_11); |
marvas | 0:2680050cef72 | 32 | //satır 4321 sutun 4321 |
marvas | 0:2680050cef72 | 33 | uint32_t key_num; |
marvas | 0:2680050cef72 | 34 | servomotor.start(servometot); |
marvas | 0:2680050cef72 | 35 | stepmotor.start(stepmetot); |
marvas | 0:2680050cef72 | 36 | lcdekran.start(lcdmetot); |
marvas | 0:2680050cef72 | 37 | while(true) { |
marvas | 0:2680050cef72 | 38 | while ((key_num = key.read()) != 0) { |
marvas | 0:2680050cef72 | 39 | lcd.locate(0,1); |
marvas | 0:2680050cef72 | 40 | lcd.printf("%c", *(key_table + key_num-1)); |
marvas | 0:2680050cef72 | 41 | printf("%c\n", *(key_table + key_num-1)); |
marvas | 0:2680050cef72 | 42 | } |
marvas | 0:2680050cef72 | 43 | wait(0.1); |
marvas | 0:2680050cef72 | 44 | } |
marvas | 0:2680050cef72 | 45 | } |
marvas | 0:2680050cef72 | 46 | void servometot() |
marvas | 0:2680050cef72 | 47 | { |
marvas | 0:2680050cef72 | 48 | while(1) { |
marvas | 0:2680050cef72 | 49 | for(uint8_t x=0; x<5; x++) { |
marvas | 0:2680050cef72 | 50 | servo=1; |
marvas | 0:2680050cef72 | 51 | wait_ms(1.5); |
marvas | 0:2680050cef72 | 52 | servo=0; |
marvas | 0:2680050cef72 | 53 | wait_ms(18.5); |
marvas | 0:2680050cef72 | 54 | } |
marvas | 0:2680050cef72 | 55 | wait(1); |
marvas | 0:2680050cef72 | 56 | for(uint8_t x=0; x<5; x++) { |
marvas | 0:2680050cef72 | 57 | servo=1; |
marvas | 0:2680050cef72 | 58 | wait_ms(1); |
marvas | 0:2680050cef72 | 59 | servo=0; |
marvas | 0:2680050cef72 | 60 | wait_ms(19); |
marvas | 0:2680050cef72 | 61 | } |
marvas | 0:2680050cef72 | 62 | wait(1); |
marvas | 0:2680050cef72 | 63 | for(uint8_t x=0; x<10; x++) { |
marvas | 0:2680050cef72 | 64 | servo=1; |
marvas | 0:2680050cef72 | 65 | wait_ms(2); |
marvas | 0:2680050cef72 | 66 | servo=0; |
marvas | 0:2680050cef72 | 67 | wait_ms(18); |
marvas | 0:2680050cef72 | 68 | } |
marvas | 0:2680050cef72 | 69 | wait(1); |
marvas | 0:2680050cef72 | 70 | } |
marvas | 0:2680050cef72 | 71 | |
marvas | 0:2680050cef72 | 72 | } |
marvas | 0:2680050cef72 | 73 | |
marvas | 0:2680050cef72 | 74 | |
marvas | 0:2680050cef72 | 75 | void stepmetot() |
marvas | 0:2680050cef72 | 76 | { |
marvas | 0:2680050cef72 | 77 | step=0x0; |
marvas | 0:2680050cef72 | 78 | while(1) { |
marvas | 0:2680050cef72 | 79 | |
marvas | 0:2680050cef72 | 80 | step=0x8; |
marvas | 0:2680050cef72 | 81 | wait_ms(1); |
marvas | 0:2680050cef72 | 82 | step=0x4; |
marvas | 0:2680050cef72 | 83 | wait_ms(1); |
marvas | 0:2680050cef72 | 84 | step=0x2; |
marvas | 0:2680050cef72 | 85 | wait_ms(1); |
marvas | 0:2680050cef72 | 86 | step=0x1; |
marvas | 0:2680050cef72 | 87 | wait_ms(1); |
marvas | 0:2680050cef72 | 88 | } |
marvas | 0:2680050cef72 | 89 | } |
marvas | 0:2680050cef72 | 90 | void lcdmetot() |
marvas | 0:2680050cef72 | 91 | { |
marvas | 0:2680050cef72 | 92 | // bool y=0; |
marvas | 0:2680050cef72 | 93 | while(1) { |
marvas | 0:2680050cef72 | 94 | |
marvas | 0:2680050cef72 | 95 | for(uint8_t x=0; x<11; x++) { |
marvas | 0:2680050cef72 | 96 | |
marvas | 0:2680050cef72 | 97 | lcd.locate(x-1,0); |
marvas | 0:2680050cef72 | 98 | lcd.printf(" "); |
marvas | 0:2680050cef72 | 99 | lcd.locate(x,0); |
marvas | 0:2680050cef72 | 100 | lcd.printf("mehmet"); |
marvas | 0:2680050cef72 | 101 | wait_ms(200); |
marvas | 0:2680050cef72 | 102 | } |
marvas | 0:2680050cef72 | 103 | for(uint8_t x=0; x<16; x++) { |
marvas | 0:2680050cef72 | 104 | |
marvas | 0:2680050cef72 | 105 | lcd.locate(x,0); |
marvas | 0:2680050cef72 | 106 | lcd.printf(" "); |
marvas | 0:2680050cef72 | 107 | } |
marvas | 0:2680050cef72 | 108 | // y=!y; |
marvas | 0:2680050cef72 | 109 | |
marvas | 0:2680050cef72 | 110 | } |
marvas | 0:2680050cef72 | 111 | } |