Εμφάνιση αποτελεσμάτων : 1 έως 6 από 6

Θέμα: καθυστερηση delay σε εξοδο

  1. #1
    Μέλος
    Όνομα
    george
    Εγγραφή
    Jun 2005
    Περιοχή
    ΤΡΙΚΑΛΑ
    Μηνύματα
    421

    Προεπιλογή καθυστερηση delay σε εξοδο

    καλησπερα και καλη χρονια να εχουμε.φτιαχνω εναν ενισχυτη 5.1 με controller εναν arduino και ολοκληρωμενα τα pt2323 & pt2322.θελω εαν γινεται στο pin13 του arduino που ειναι μια εξοδος που ενεργοποιει ενα ρελε να υπαρχει μια καθυστεριση π.χ 4 δευτερολεπτων εαν ειναι δυνατον και αν ναι πως???
    ανεβαζω τον κωδικα

    // 5.1 Surround System
    // DaacWaves <https://daacwaves.blogspot.com>


    #include <Wire.h>
    #include <LiquidCrystal.h>
    #include <EEPROM.h>
    #include <IRremote.h>
    #define PT2323_address 0b1001010
    #define PT2322_address 0b1000100


    #define btn_delay 300


    #define sw01 9 // SW
    #define sw02 11 // DT
    #define sw03 10 // CLK
    #define sw04 A0 // Input
    #define sw05 A1 // Mute
    #define sw06 A2 // Power
    #define sw07 13 // RELE
    #define sw08 12 // DISPLAY


    // IR HEX code
    #define ir_power 0x807F827D // IR power ON/OFF
    #define ir_mute 0x807F42BD // IR mute
    #define ir_in 0x807F629D // IR input select
    #define ir_vol_i 0x807F906F // IR vol++
    #define ir_vol_d 0x807FA05F // IR vol--
    #define ir_sub_i 0x807FD02F // IR sub++
    #define ir_sub_d 0x807FE01F // IR sub--
    #define ir_fl_i 0x807F40BF // IR fl++
    #define ir_fl_d 0x807FC03F // IR fl--
    #define ir_fr_i 0x807F00FF // IR fr++
    #define ir_fr_d 0x807F807F // IR fr--
    #define ir_cn_i 0x807F50AF // IR cn++
    #define ir_cn_d 0x807F609F // IR cn--
    #define ir_sl_i 0x807F48B7 // IR sl++
    #define ir_sl_d 0x807FC837 // IR sl--
    #define ir_sr_i 0x807F08F7 // IR sr++
    #define ir_sr_d 0x807F8877 // IR sr--
    #define ir_bass_i 0x807F8A75 // IR bass++
    #define ir_bass_d 0x807F4AB5 // IR bass--
    #define ir_mid_i 0x807F6897 // IR mid++
    #define ir_mid_d 0x807FE817 // IR mid--
    #define ir_treb_i 0x807FAA55 // IR treb++
    #define ir_treb_d 0x807F6A95 // IR treb--
    #define ir_sp_mode 0x807F0AF5 // IR speaker mode change
    #define ir_sou_mode 0x807FA857 // IR sound mode change


    IRrecv irrecv(;
    decode_results results;


    byte custom_num[8][8] = {
    { B00111,B01111,B11111,B11111,B11111,B11111,B11111,B 11111 },
    { B11111,B11111,B11111,B00000,B00000,B00000,B00000,B 00000 },
    { B11100,B11110,B11111,B11111,B11111,B11111,B11111,B 11111 },
    { B11111,B11111,B11111,B11111,B11111,B11111,B01111,B 00111 },
    { B00000,B00000,B00000,B00000,B00000,B11111,B11111,B 11111 },
    { B11111,B11111,B11111,B11111,B11111,B11111,B11110,B 11100 },
    { B11111,B11111,B11111,B00000,B00000,B00000,B11111,B 11111 },
    { B11111,B11111,B11111,B11111,B11111,B11111,B11111,B 11111 }};

    const int digit_width = 3;
    // 0 1 2 3 4 5 6 7 8 9
    const char custom_num_top[10][digit_width]={ 0,1,2, 1,2,32, 6,6,2, 6,6,2, 3,4,7, 7,6,6, 0,6,6, 1,1,2, 0,6,2, 0,6,2};
    const char custom_num_bot[10][digit_width]={ 3,4,5, 4,7,4, 7,4,4, 4,4,5, 32,32,7, 4,4,5, 3,4,5, 32,32,7, 3,4,5, 4,4,5};


    byte arrow_left[8] = {B00100,B01100,B11100,B01100,B00100,B00000,B00000, B00000};
    byte arrow_right[8] = {B00100,B00110,B00111,B00110,B00100,B00000,B00000, B00000};
    byte arrow_bottom[8] = {B00100,B00100,B00100,B11111,B01110,B00100,B00000, B00000};


    LiquidCrystal lcd(7, 6, 5, 22, 3, 2); // RS,E,D4,D5,D6,D7
    unsigned long time;
    int in, vol, bass, mid, treb, sub, fl, cn, fr, sl, sr, mute, ch_mute, return_d, surr, mix, vol_10, vol_1, a, b, mute_sel, effect_sel, tone_sel, sound_mode, speaker_mode, sub_menu, menu_sel, power, vol_on;
    int menu, sub_menu_sel, sub_menu_item, sub_menu_item_sel;
    int sub_v, sub_10, sub_1, ir_on, ir_menu;


    void setup() {
    Wire.begin();
    Serial.begin(9600);
    irrecv.enableIRIn();

    pinMode(sw01, INPUT); // SW
    pinMode(sw02, INPUT); // DT
    pinMode(sw03, INPUT); // CLK
    pinMode(sw04, INPUT); // Input
    pinMode(sw05, INPUT); // Mute
    pinMode(sw06, INPUT); // Power
    pinMode(sw07, OUTPUT); // RELE
    pinMode(sw08, OUTPUT); // DISPLAY


    lcd.begin(16, 2);


    power = 0;
    eeprom_read();
    power_up();
    }


    void loop() {
    lcd_update();
    eeprom_update();
    ir_control();
    return_delay();

    if(menu == 0 || menu == 2) {
    custom_num_shape();
    } else {
    custom_shape();
    }


    //power -------------------------------------------------//
    if (analogRead(sw06) > 900) {
    power++;
    if (power > 1) {
    power = 0;
    }
    power_up();
    delay(btn_delay);
    }

    if(power == 1) {
    //select input -------------------------------------------------//
    if (analogRead(sw04) > 900) {
    in++;
    set_in();
    delay(btn_delay);
    }

    //select menu -------------------------------------------------//
    if (digitalRead(sw01) == LOW && menu_sel == 0 && vol_on == 0) {
    menu++;
    if (menu > 4) {
    menu = 0;
    }
    btn_cl();
    lcd.clear();
    }

    //mute -------------------------------------------------//
    if (analogRead(sw05) > 900) {
    mute++;
    set_mute();
    delay(btn_delay);
    if (menu != 0) {
    lcd.clear();
    menu = 0;
    }
    if(mute == 1) {
    vol_on = 1;
    } else {
    vol_on = 0;
    }
    }
    }


    //volume -------------------------------------------------//
    if (menu == 0) {
    if (digitalRead(sw02) == LOW && vol_on == 0) {
    vol++;
    set_vol();
    delay(btn_delay);
    }
    if (digitalRead(sw03) == LOW && vol_on == 0) {
    vol--;
    set_vol();
    delay(btn_delay);
    }
    menu_sel = 0;
    sub_menu = 0;
    sub_menu_item = 0;
    sub_menu_item_sel = 0;
    }


    //menu 1 -------------------------------------------------//
    if (menu == 1) {
    set_sub_menu();
    switch(sub_menu){
    //bass -------------------------------------------------//
    case 1:
    if (digitalRead(sw02) == LOW && sub_menu_item == 1) {
    bass++;
    set_bass();
    sound_mode = 0;
    btn_cl();
    }
    if (digitalRead(sw03) == LOW && sub_menu_item == 1) {
    bass--;
    set_bass();
    sound_mode = 0;
    btn_cl();
    }
    break;


    //mid -------------------------------------------------//
    case 2:
    if (digitalRead(sw02) == LOW && sub_menu_item == 1) {
    mid++;
    set_mid();
    sound_mode = 0;
    btn_cl();
    }
    if (digitalRead(sw03) == LOW && sub_menu_item == 1) {
    mid--;
    set_mid();
    sound_mode = 0;
    btn_cl();
    }
    break;


    //treb -------------------------------------------------//
    case 3:
    if (digitalRead(sw02) == LOW && sub_menu_item == 1) {
    treb++;
    set_treb();
    sound_mode = 0;
    btn_cl();
    }
    if (digitalRead(sw03) == LOW && sub_menu_item == 1) {
    treb--;
    set_treb();
    sound_mode = 0;
    btn_cl();
    }
    break;

    case 4:
    sub_menu = 0;
    break;
    }
    }


    //menu 2 -------------------------------------------------//
    if (menu == 2) {
    if (digitalRead(sw02) == LOW) {
    sub++;
    set_sub();
    btn_cl();
    }
    if (digitalRead(sw03) == LOW) {
    sub--;
    set_sub();
    btn_cl();
    }
    }

    //menu 3 -------------------------------------------------//
    if (menu == 3) {
    set_sub_menu();
    switch(sub_menu){
    //FL -------------------------------------------------//
    case 1:
    if (digitalRead(sw02) == LOW && sub_menu_item == 1) {
    fl++;
    set_fl();
    btn_cl();
    }
    if (digitalRead(sw03) == LOW && sub_menu_item == 1) {
    fl--;
    set_fl();
    btn_cl();
    }
    break;


    //FR -------------------------------------------------//
    case 2:
    if (digitalRead(sw02) == LOW && sub_menu_item == 1) {
    fr++;
    set_fr();
    btn_cl();
    }
    if (digitalRead(sw03) == LOW && sub_menu_item == 1) {
    fr--;
    set_fr();
    btn_cl();
    }
    break;


    //CN -------------------------------------------------//
    case 3:
    if (digitalRead(sw02) == LOW && sub_menu_item == 1) {
    cn++;
    set_cn();
    btn_cl();
    }
    if (digitalRead(sw03) == LOW && sub_menu_item == 1) {
    cn--;
    set_cn();
    btn_cl();
    }
    break;


    //SL -------------------------------------------------//
    case 4:
    if (digitalRead(sw02) == LOW && sub_menu_item == 1) {
    sl++;
    set_sl();
    btn_cl();
    }
    if (digitalRead(sw03) == LOW && sub_menu_item == 1) {
    sl--;
    set_sl();
    btn_cl();
    }
    break;


    //SR -------------------------------------------------//
    case 5:
    if (digitalRead(sw02) == LOW && sub_menu_item == 1) {
    sr++;
    set_sr();
    btn_cl();
    }
    if (digitalRead(sw03) == LOW && sub_menu_item == 1) {
    sr--;
    set_sr();
    btn_cl();
    }
    break;

    case 6:
    sub_menu = 0;
    break;
    }
    }

    //menu 4 -------------------------------------------------//
    if (menu == 4) {
    set_sub_menu();
    switch(sub_menu){
    //surrond on off -------------------------------------------------//
    case 1:
    if (digitalRead(sw02) == LOW && sub_menu_item == 1) {
    surr++;
    set_surr();
    btn_cl();
    }
    break;

    //speaker mode -------------------------------------------------//
    case 2:
    if (digitalRead(sw02) == LOW && sub_menu_item == 1) {
    speaker_mode++;
    set_speaker_mode();
    btn_cl();
    }
    break;

    //sound mode -------------------------------------------------//
    case 3:
    if (digitalRead(sw02) == LOW && sub_menu_item == 1) {
    sound_mode++;
    set_sound_mode();
    btn_cl();
    }
    break;

    case 4:
    sub_menu = 0;
    break;
    }
    }
    }

    0 Not allowed! Not allowed!

  2. #2
    Μέλος
    Όνομα
    george
    Εγγραφή
    Jun 2005
    Περιοχή
    ΤΡΙΚΑΛΑ
    Μηνύματα
    421

    Προεπιλογή

    να ενημερωσω οτι ο κωδικας δεν ειναι ολοκληρος λογο μεγαλου μεγεθους.

    0 Not allowed! Not allowed!

  3. #3
    Μέλος Το avatar του χρήστη Kernel Panic
    Όνομα
    Kernel Panic
    Εγγραφή
    Aug 2016
    Περιοχή
    Αθήνα
    Μηνύματα
    430

    Προεπιλογή

    george απουσίαζες στο πρώτο μάθημα για arduino?
    με δυο τρόπους
    1.
    Blink with delay()
    2.
    Blink Without delay()

    1 Not allowed! Not allowed!

  4. #4
    Μέλος Το avatar του χρήστη konpan
    Όνομα
    ΚΩΣΤΑΣ
    Εγγραφή
    Nov 2018
    Περιοχή
    ΣΑΜΟΣ
    Μηνύματα
    218

    Προεπιλογή

    Απορώ!
    Ολον αυτόν τον κώδικα τον καταλαβαίνεις και δεν μπορείς να βάλεις ένα delay() στο σημείο που αναφέρεις?
    "παλαλούμαι"!!! που λένε στη Θεσσαλονίκη...

    1 Not allowed! Not allowed!

  5. #5
    Μέλος
    Όνομα
    Νίκος
    Εγγραφή
    Feb 2014
    Περιοχή
    Μοσχάτο
    Μηνύματα
    607

    Προεπιλογή

    Γιατί δεν μας παραπέμπεις κατευθείαν στον δημιουργό για να κάνεις την ζωή σου ευκολότερη...
    Αφού δεν καταλαβαίνεις κώδικα, γιατί να μας τυραννάς.. ούτε το κομάτι που σχετίζετε με το pin 13 δεν έχεις βάλει στον κώδικα που παραθέτεις... Καλύτερα πες, πάτε εκεί και δες το ολόκληρο.. που έχει και σχηματικό...

    https://www.daacwaves.com/2021/07/ha...emote-kit.html

    εκεί που λέει power up κάνε κατι σαν αυτό: (δεν το έχω δοκιμάσει αν χαλάει κάτι άλλο.. κάνε δοκιμές)

    Κώδικας:
    //power up --------------------------------------------------------------------------------//
    void power_up() {
      if(power == 1) {
      delay(4000); 
      digitalWrite(sw07, HIGH);
     mute = 1;
     lcd.clear(); 
    delay(500);
    

    0 Not allowed! Not allowed!
    Mastroxalastis / Μαστροχαλαστής
    https://www.youtube.com/channel/UCOWjSR-OOc-ZBCT61EX_lJg

  6. #6
    Μέλος
    Όνομα
    george
    Εγγραφή
    Jun 2005
    Περιοχή
    ΤΡΙΚΑΛΑ
    Μηνύματα
    421

    Προεπιλογή

    καλησπερα.η αληθεια ειναι οτι δεν ξερω να γραφω κωδικα απλα βρηκα την σελιδα μου αρεσε σαν κατασκευη η οποια ηταν και αυτη που εψαχνα και απλα αλλαξα καποια πραγματακια στον κωδικα μετα απο πολλες δοκιμες.τωρα για το γιατι δεν εβαλα κατευθειαν την σελιδα.το σκεφτηκα αλλα λεω δεν υπαρχει περιπτωση να μπει καποιος και να ασχοληθει τοσο πολυ.ευχαριστω παντος για τις απαντησεις σας.θα δοκιμασω αυτο που εγραωε ο νικος

    0 Not allowed! Not allowed!

  7. 2 μέλη ευχαρίστησαν τον FMTRIKALA για αυτό το χρήσιμο μήνυμα:

    konpan (12-01-24), mikemtb (10-01-24)

Παρόμοια Θέματα

  1. καθυστερηση πλαφονιερας
    By Bobiras in forum Παρουσίαση Ολοκληρωμένων Κατασκευών
    Απαντήσεις: 46
    Τελευταίο Μήνυμα: 25-09-19, 16:00
  2. Απαντήσεις: 22
    Τελευταίο Μήνυμα: 17-10-16, 12:21
  3. Γίνεται Χρονική καθυστερηση σε παλμο;
    By xmaze in forum Ερωτήσεις Αρχάριων
    Απαντήσεις: 24
    Τελευταίο Μήνυμα: 26-04-11, 11:01
  4. καθυστερηση οn/off
    By BESTCHRISS in forum Χρονοκυκλώματα
    Απαντήσεις: 13
    Τελευταίο Μήνυμα: 10-11-10, 20:48
  5. Απαντήσεις: 5
    Τελευταίο Μήνυμα: 07-03-09, 02:34

Δικαιώματα - Επιλογές

  • Δημιουργία θεμάτων: Όχι
  • Υποβολή μηνυμάτων: Όχι
  • Σύναψη αρχείων: Όχι
  • Επεξεργασία μηνυμάτων: Όχι
  •  
  • BB code: σε λειτουργία
  • Smilies: σε λειτουργία
  • [IMG]: σε λειτουργία
  • [VIDEO] code is σε λειτουργία
  • HTML: εκτός λειτουργίας