Σελίδα 1 από 7 1 2 3 ... ΤελευταίαΤελευταία
Εμφάνιση αποτελεσμάτων : 1 έως 10 από 62

Θέμα: Countdown timer 7seg CC με Arduino για UV Box και όχι μόνο.

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

    Προεπιλογή Countdown timer 7seg CC με Arduino για UV Box και όχι μόνο.

    Πάνε μερικά χρόνια που είχα αξιοποιήσει το παλιό scanner σε UV Box.
    Ο χρόνος έκθεσης τα 3’ είναι μικρός και δεν είχα βάλει κάποιο Countdown timer, έβαζα αντίστροφη στο κινητό και όλα καλά.
    Έλα όμως που έκατσε η στραβή και την ώρα της έκθεσης της πλακέτας έπρεπε να φύγω, οοέεοοο! Αυτή η πλακέτα πάει, πήγα για άλλη, αλλά στάθηκε αφορμή να φτιάξω το Countdown timer που έλειπε.
    Είδα διάφορες παρουσιάσεις εδώ μέσα και αλλού, αλλά σαν μυστήριος, παράξενος και ξινός τύπος που είμαι, καμία δεν μου καθότανε.
    Τι ο σχεδιασμός με χάλαγε, τι ο κώδικας μου φαινόταν κάπως, ήθελα να χρησιμοποιήσω και συγκεκριμένα υλικά που υπήρχαν στο συρτάρι και λέω δεν το πάω από την αρχή όπως το θέλω και μπορώ?
    Να λοιπόν το μοναδικό (αυτό και άλλα 50) Countdown timer με το β€œπρωτότυπο” Arduino.


    Τα βασικά χαρακτηρίστηκα
    Μέγιστος χρόνος αντίστροφης μέτρησης 99:59 [min:sec].
    Απεικόνιση χρόνου σε Common Cathode 4 x 7-Segment Display χωρίς ειδικό τσιπάκι, αλλά με πολυπλεξία.
    Στον κώδικα υπάρχει πρόβλεψη, αφαιρώντας απλώς τα σχόλια (στη γραμμή 349), να χρησιμοποιήσετε 7-Segment κοινής ανόδου.
    Η μόνη βιβλιοθήκη που χρησιμοποιώ, είναι η ενσωματωμένη <EEPROM.h>
    Timer interrupt για πολύ καλή ακρίβεια - δεν χάνει λέμε.
    Σ' αυτό το φόρουμ διάβασα την πολύ καλή ιδέα να μπει reed switch στο καπάκι και φυσικά το έβαλα.


    Ο χειρισμός με τα τρία κουμπιά είναι πολύ απλός, για μην μου σπάει τα νεύρα.
    UP ο χρόνος ανεβαίνει στην αρχή ανά 1’ και μετά ανά 30’.
    DOWN ο χρόνος κατεβαίνει ανά 1’ αργά στη αρχή και μετά γρήγορα.
    START | STOP αν ο χρόνος άλλαξε από την τελευταία φορά εμφανίζετε η λέξη Set, ο νέος χρόνος καταχωρείτε στην EEPROM και ξεκινάει την αντίστροφη και φυσικά ανοίγουν και τα UV Leds.
    Στα τελευταία 5’ ακούγετε ένα μπιπ, τελειώνοντας ο χρόνος της αντίστροφης ακούγετε ο ήχος λήξης και εμφανίζετε η λέξη End που μένει εκεί (κόλπο για να θυμάμαι) μέχρι να πατηθεί πάλι το κουμπί START και να εμφανιστεί ο χρόνος που έχει στην EEPROM .
    Αν κατά την διάρκεια της αντίστροφης πατηθεί το START, λειτουργεί σαν STOP και τερματίζει την αντίστροφη, σβήνουν τα UV Leds, εμφανίζετε η λέξη StoP, ακούγετε ο ήχος λήξης κλπ.
    Αν το κάλυμμα δεν είναι κλειστό και πατηθεί το START, στην οθόνη εμφανίζετε ένα P να πηγαίνει πέρα δώθε (animation ντε!), πρέπει κλείσει το κάλυμμα και να ξαναπατηθεί το START.
    Αν κατά την διάρκεια της αντίστροφης σηκώσετε το κάλυμμα, η οθόνη εμφανίζει το Animation P, μόλις κλείσει το κάλυμμα η αντίστροφη θα συνεχίσει από τον χρόνο που σταμάτησε.


    Υ.Γ. a) Δεν θέλω σχόλια του τύπου γιατί το 'φτιαξα σε τρυπητή και όχι σε χειροποίητο PCB.
    Υ.Γ. b) Αν θέλετε αλλαγές σ' αυτό το "τέλειο και καταπληκτικό" project, τις κάνετε μόνοι σας και τις ανεβάζετε.
    Δικό σας.

    μερικές φωτο εδώ.


    Πατήστε στην εικόνα για να τη δείτε σε μεγένθυνση Όνομα:  Timer 7seg CC_01.jpg Εμφανίσεις:  383 Μέγεθος:  76,5 KB Πατήστε στην εικόνα για να τη δείτε σε μεγένθυνση Όνομα:  Timer 7seg CC_02.jpg Εμφανίσεις:  345 Μέγεθος:  90,9 KB
    Πατήστε στην εικόνα για να τη δείτε σε μεγένθυνση Όνομα:  Timer 7seg CC_03.jpg Εμφανίσεις:  334 Μέγεθος:  117,5 KB Πατήστε στην εικόνα για να τη δείτε σε μεγένθυνση Όνομα:  Timer 7seg CC_04.jpg Εμφανίσεις:  319 Μέγεθος:  57,8 KB Πατήστε στην εικόνα για να τη δείτε σε μεγένθυνση Όνομα:  Timer 7seg CC_05.jpg Εμφανίσεις:  300 Μέγεθος:  129,7 KB

    και η συνέχεια στο επόμενο....
    Συνημμένα Thumbnails Συνημμένα Thumbnails Πατήστε στην εικόνα για να τη δείτε σε μεγένθυνση Όνομα:  Timer 7seg CC_06.jpg Εμφανίσεις:  234 Μέγεθος:  26,5 KB  

    21 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη Kernel Panic : 23-02-18 στις 10:49

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

    cdesp (01-07-20), elektronio (15-06-20), finos (17-06-20), Hulk (23-02-18), Lord Vek (23-02-18), manolena (24-02-18), michalism (16-06-20), nanobot (24-02-18), nestoras (26-02-18), SeAfasia (23-02-18), tasos987 (24-02-18)

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

    Προεπιλογή

    και τώρα η συνέχεια..
    Πατήστε στην εικόνα για να τη δείτε σε μεγένθυνση Όνομα:  Timer 7seg CC_07.jpg Εμφανίσεις:  174 Μέγεθος:  28,6 KB Πατήστε στην εικόνα για να τη δείτε σε μεγένθυνση Όνομα:  Timer 7seg CC_08.jpg Εμφανίσεις:  156 Μέγεθος:  27,0 KB Πατήστε στην εικόνα για να τη δείτε σε μεγένθυνση Όνομα:  Timer 7seg CC_09.jpg Εμφανίσεις:  181 Μέγεθος:  26,8 KB
    Πατήστε στην εικόνα για να τη δείτε σε μεγένθυνση Όνομα:  Timer 7seg CC_10.jpg Εμφανίσεις:  187 Μέγεθος:  26,7 KB Πατήστε στην εικόνα για να τη δείτε σε μεγένθυνση Όνομα:  Timer 7seg CC_11.jpg Εμφανίσεις:  184 Μέγεθος:  26,4 KB Πατήστε στην εικόνα για να τη δείτε σε μεγένθυνση Όνομα:  Timer 7seg CC_12.jpg Εμφανίσεις:  187 Μέγεθος:  97,9 KB
    Κώδικας:
    /*
       7-Segment Display Multiplexing Countdown timer
       Common cathode displays
       max. countdown time 99:59 [min:sec]
       Arduino Software (IDE) 1.8.1
       Date: 22/02/2018
      # kernel panik #
    */
    /*
      7-Segment Display map
          AAA
         F   B
         F   B
          GGG
         E   C
         E   C
          DDD
    */
    
    
    /*------------------------------------------------------------
      Includes
      ------------------------------------------------------------*/
    #include <EEPROM.h>
    
    
    /*------------------------------------------------------------
      Defines
      ------------------------------------------------------------*/
    #define  pinUP         11 // Button UP Countdown
    #define  pinDown       12 // Button Down Countdown
    #define  pinStart      13 // Button Start or STOP
    #define  PinPause      A0 // Button Pause
    #define  btnUP          0 // For Buttons array
    #define  btnDown        1 // For Buttons array
    #define  btnStart       2 // For Buttons array
    #define  btnPause       3 // For Buttons array
    
    
    #define  UV_Leds       10 // output
    #define  Buzzer        A1 // Buzzer pin out
    #define  BlinkDot       6 // Blink led COL. every second
    #define  SpeedSlow    250 // milliseconds
    #define  SpeedFast   1500 // milliseconds
    #define  SpeedDwnSec    1 // 
    #define  BeepSec        6 // Beep for the last seconds
    #define  Debounce      20 // milliseconds
    #define  EEPRminute     0 // address of the EEPROM
    #define  EEPRsecond     1 // address of the EEPROM
    // arduino pins for segments
    #define  A              4 // arduino pin out
    #define  B              2
    #define  C              5
    #define  D              8
    #define  E              9
    #define  F              7
    #define  G              3
    #define  DP             6
    // arduino pins for digits
    #define  Dig1          A2 // arduino pin out
    #define  Dig2          A3
    #define  Dig3          A4
    #define  Dig4          A5
    
    
    // Button debouncing globals
    const byte Buttons[] = {pinUP, pinDown, pinStart, PinPause}; // create an array of pins for switch
    const byte NumOFbtns = sizeof(Buttons);
    boolean   oldButtonLevels[18]; // 18
    boolean   stableButtonLevels[18]; //18
    unsigned long ButtonTime, SpeedTime;
    int Minute, Second, SpeedCount; //
    
    
    //=== 7 segments leds =============================
    // bits representing segments A through G (and decimal point) for numerals 0-9
    const int Numera[21] = {
      //ABCDEFG dp
      B11111100, // 0
      B01100000, // 1
      B11011010, // 2
      B11110010, // 3
      B01100110, // 4
      B10110110, // 5
      B00111110, // 6
      B11100000, // 7
      B11111110, // 8
      B11100110, // 9
      B10110110, // S / 10
      B10011110, // E / 11
      B00011110, // t / 12
      B01101110, // H / 13
      B00001000, // i / 14
      B11001110, // P / 15
      B00000010, // - / 16
      B00000000, // 17 - shows nothing
      B00101010, // n / 18
      B01111010, // d / 19
      B00111010, // o / 20
    };
    
    
    const int segmentPins[] = {DP, G, F, E, D, C, B, A};
    const int nbrDigits = 4; // the number of digits in the LED display
    const int digitPins[nbrDigits] = { Dig1, Dig2, Dig3, Dig4};
    
    
    /* notes in the melody
       http://www.arduino.cc/en/Tutorial/Tone */
    // int melody[] = {262, 196, 196, 220, 196, 0, 247, 262};
    int melody[] = {4186, 3136, 3136, 3520, 3136, 0, 3951, 4186};
    //note durations. 4=quarter note / 8=eighth note
    int noteDurations[] = {4, 8, 8, 4, 4, 4, 4, 4};
    
    
    boolean ON = HIGH;
    boolean OFF = LOW;
    boolean LastBeep;
    
    
    /***********************
      Timer interrupt
      https://www.electronicsblog.net/examples-of-using-arduinoatmega-16-bit-hardware-timer-for-digital-clock/
    ************************/
    ISR(TIMER1_OVF_vect) {
      Second --;
      LastBeep = true;
      digitalWrite(BlinkDot, !digitalRead(BlinkDot));
      TCNT1 = 0x0BDC; // 0x0BDC set initial value to remove time error (16bit counter register)
    }
    
    
    //=== setup =============================================================
    void setup() {
      /* make buttons as input */
      for (byte index_BTN = 0; index_BTN < NumOFbtns; index_BTN++) {
        pinMode(Buttons[index_BTN], INPUT_PULLUP);
      }
    
    
      for (int i = 0; i < 8; i++)   {
        pinMode (segmentPins[i], OUTPUT); // set segment and BlinkDot pins to output
        for (int i = 0; i < nbrDigits; i++)
          pinMode (digitPins[i], OUTPUT);
      }
      pinMode (Buzzer, OUTPUT);
      pinMode (UV_Leds, OUTPUT);
      digitalWrite (Buzzer, OFF);
      digitalWrite (UV_Leds, OFF);
    
    
      for (int i = 0; i < 50; i++) { // Hi
        showDigit (13, 1); // H
        showDigit (14, 2); // i
      }
    
    
      TIMSK1 = 0x01; // enabled global and timer overflow interrupt;
      TCCR1A = 0x00; // normal operation (mode0);
      TCNT1 = 0x0BDC; // 0x0BDC set initial value to remove time error (16bit counter register)
      TCCR1B = 0x00; // set clock / start timer = 0x04; / stop 0x00;
    
    
      Minute = EEPROM.read(EEPRminute); // read minute from address of the EEPROM
      Second = EEPROM.read(EEPRsecond); // read second from address of the EEPROM
    
    
      digitalWrite (BlinkDot, ON);
      Beep_();
    
    
    }//==Close setup =====
    
    
    //==== loop ================================================================
    void loop() {
      //-- pinUP ---
      if (getButtonStableEdge(Buttons[btnUP]) == true && getButtonStableLevel(Buttons[btnUP]) == LOW) {
        Second ++;
        ButtonTime = millis();
        SpeedTime = millis();
        while (digitalRead(pinUP) == LOW) {
          if (Second > 59) {
            Second = 00;
            Minute ++;
          }
          if (Minute >= 100) {
            Minute = 00;
          }
          if (millis() - ButtonTime > SpeedSlow) {
            Second ++;
            ButtonTime = millis();
            if (millis() - SpeedTime > SpeedFast) {
              Second += 29;
            }
          }
          UpdateDisplay();
        }//--Close while ----
      }//==Close pinUP ====
    
    
      //--- Down ----
      if (getButtonStableEdge(Buttons[btnDown]) == true && getButtonStableLevel(Buttons[btnDown]) == LOW) {
        if ((Minute == 0) && (Second == 0)) {
          Second = 59;
          Minute = 99;
        }
        else {
          Second --;
        }
        if  ((Second == -1) || (Second > 60)) {
          Second = 59;
          Minute --;
        }
    
    
        SpeedCount = SpeedSlow;
        ButtonTime = millis();
        SpeedTime = millis();
    
    
        while (digitalRead(pinDown) == LOW) { //-- while --
          if (millis() - SpeedTime > SpeedFast) {
            SpeedCount = SpeedDwnSec;
          }
    
    
          if (millis() - ButtonTime > SpeedCount)  {
            if ((Second == 0) && (Minute == 0)) {
              Minute = 99;
              Second = 59;
            }
            else {
              Second --;
            }
            if  ((Second == -1) || (Second > 60)) {
              Second = 59;
              Minute --;
            }
            ButtonTime = millis();
          }
          UpdateDisplay();
        }//--Close while ---
      } //==Close Down ===
    
    
      //--- Start | EEPROM | Pause | STOP ----
      //--- Pause ----
      if ((digitalRead(PinPause) == HIGH) && (getButtonStableEdge(Buttons[btnStart]) == true) && (getButtonStableLevel(Buttons[btnStart]) == LOW)) {
        digitalWrite (UV_Leds, OFF);
        TCCR1B = 0x00; // set clock -> start = 0x04; | stop = 0x00;
        Pause();
        delay(10);
      }
    
    
      //--- Start ---
      if ((digitalRead(PinPause) == LOW) && (getButtonStableEdge(Buttons[btnStart]) == true) && (getButtonStableLevel(Buttons[btnStart]) == LOW)) {
        boolean CountDwn = true;
        //--- Store EEPROM only if different ---
        if (EEPROM.read (EEPRminute) != Minute || EEPROM.read (EEPRsecond) != Second) {
          digitalWrite (BlinkDot, OFF);
          EEPROM.update (EEPRminute, Minute);
          EEPROM.update (EEPRsecond, Second);
          for (int i = 0; i < 50; i++)   { // Display SEt
            showDigit (10, 0); // S
            showDigit (11, 1); // E
            showDigit (12, 2); // t
          }
        } //--Close Store EEPROM -----
    
    
        TCCR1B = 0x04; // set clock -> start = 0x04; | stop = 0x00;
        digitalWrite (UV_Leds, ON);
        Beep_();
    
    
        //--- Countdown ----
        while (CountDwn) {// wait
          if (Minute == 0 && Second == 0) {
            CountDwn = false;
          }
          if (Minute == 0 && Second < BeepSec && LastBeep == true) {
            Beep_();
            LastBeep = false;
          }
          if (Second < 0) {
            Minute --;
            Second = 59;
          }
    
    
          //--- Pause ----
          if (getButtonStableEdge(Buttons[btnPause]) == true && getButtonStableLevel(Buttons[btnPause]) == HIGH) {
            digitalWrite (UV_Leds, OFF);
            TCCR1B = 0x00; // set clock -> start = 0x04; | stop = 0x00;
            Pause();
            TCCR1B = 0x04; // set clock -> start = 0x04; | stop = 0x00;
            digitalWrite (UV_Leds, ON);
          }//--Close Pause ----
    
    
          //-- STOP ----
          if (getButtonStableEdge(Buttons[btnStart]) == true && getButtonStableLevel(Buttons[btnStart]) == LOW) {
            digitalWrite (UV_Leds, OFF);
            TCCR1B = 0x00;
            digitalWrite (BlinkDot, OFF);
            for (int i = 0; i < 100; i++) {
              showDigit (10, 0); // S
              showDigit (12, 1); // t
              showDigit (20, 2); // 0
              showDigit (15, 3); // P
            }
            Minute = 0;
            Second = 0;
          }//--Close STOP ----
          UpdateDisplay();
        }//--Close while Countdown ----
    
    
        digitalWrite (UV_Leds, OFF);
        TCCR1B = 0x00;
        digitalWrite (BlinkDot, OFF);
        BuzMelody();
    
    
        // End
        boolean _end = true;
        do {
          showDigit (11, 0); // E
          showDigit (18, 1); // n
          showDigit (19, 2); // d
          if (getButtonStableEdge(Buttons[btnStart]) == true && getButtonStableLevel(Buttons[btnStart]) == LOW) {
            Minute = EEPROM.read(EEPRminute);
            Second = EEPROM.read(EEPRsecond);
            _end = false;
          }
        }
        while (_end) ; // End
        digitalWrite (BlinkDot, ON);
      }//--Close Start | EEPROM | Pause | STOP ----
      UpdateDisplay();
    }//==Close loop =====
    
    
    //=== Pause ==========================================
    void Pause() {
      digitalWrite (BlinkDot, OFF);
      //-- Animation P --
      while (digitalRead(PinPause) == HIGH) { //-- while --
        for (int digit = nbrDigits - 1; digit >= 0; digit--) {
          for (int i = 0; i < 40; i++) {
            showDigit (15, digit); // P
          }
        }
        for (int Dig = 1; Dig <= 2; Dig++) {
          for (int i = 0; i < 40; i++) {
            showDigit (15, Dig); // P
          }
        }
      }//--Close while Animation P ---
    }//==Close Pause =====
    
    
    //=== UpdateDisplay ===================================
    void UpdateDisplay() {  // mmss
      showDigit (Minute / 10, 0);
      showDigit (Minute % 10, 1);
      showDigit (Second / 10, 2);
      showDigit (Second % 10, 3);
    
    
    }//==Close UpdateDisplay ====
    
    
    //=== showDigit ========================================
    // Displays given number on a 7-segment display at the given digit position
    void showDigit (byte number, byte digit) {
      digitalWrite (digitPins[digit], HIGH );
      for (int segment = 1; segment < 8; segment++) {
        boolean isBitSet = bitRead(Numera[number], segment);
        // isBitSet will be true if given bit is 1
        //  isBitSet = ! isBitSet; // if common anode display remove comment line
        digitalWrite (segmentPins[segment], isBitSet);
      }
      delay(3);
      digitalWrite (digitPins[digit], LOW );
    }//==Close showDigit ====
    
    
    //--- Buttons -----
    //=== getButtonStableEdge ====================================
    boolean getButtonStableEdge(byte Button_Pin) {
      // Detects debounced edges (presses and releases) of a button
      boolean previousLevel = stableButtonLevels[Button_Pin];
      boolean newLevel      = getButtonStableLevel(Button_Pin);
      return previousLevel != newLevel;
    }//==Close getButtonStableEdge ====
    
    
    //=== getButtonStableLevel ====================================
    byte getButtonStableLevel(byte Button_Pin) {
      // Reads a digital pin and filters it, returning the stable button position
      byte pinLevel = digitalRead(Button_Pin);
      unsigned long lastStableButtonTime;
      unsigned long currentTime = millis();
    
    
      // If the button is rapidly changing (bouncing) during a press, keep
      // resetting the last stable time count
      if (pinLevel != oldButtonLevels[Button_Pin]) {
        lastStableButtonTime = currentTime;
        oldButtonLevels[Button_Pin]      = pinLevel;
      }
    
    
      // Once the button has been stable for
      if ((currentTime - lastStableButtonTime) > Debounce) {
        stableButtonLevels[Button_Pin] = pinLevel;
      }
      return stableButtonLevels[Button_Pin];
    }//==Close getButtonStableLevel ======
    //--End Buttons ----
    
    
    /* --- Buzzer Melody ----
       http://www.arduino.cc/en/Tutorial/Tone */
    //=== BuzMelody ====================================
    void BuzMelody() {
      //iterate over the notes of the melody
      for (int thisNote = 0; thisNote < 8; thisNote++) {
        //to calculate the note duration, take one second. Divided by the note type
        int noteDuration = 1000 / noteDurations [thisNote];
        tone(Buzzer, melody [thisNote], noteDuration);
    
    
        //to distinguish the notes, set a minimum time between them
        int pauseBetweenNotes = noteDuration * 1.30;
        delay(pauseBetweenNotes);
    
    
        //stop the tone playing
        noTone(Buzzer);
      }
    }//==Close BuzMelody ====
    
    
    //=== Buzzer Beep ====================================
    void Beep_() {
      tone(Buzzer, 2489, 30);
      delay(40);
      noTone(Buzzer);
    }//==Close Beep_ ======
    
    /*********( THE END )***********/
    έρχεται και ένα σχεδιάκι...

    3 Not allowed! Not allowed!

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

    Προεπιλογή

    το σχέδιο που έλειπε.
    Πατήστε στην εικόνα για να τη δείτε σε μεγένθυνση Όνομα:  UV_BOX_Timer_Arduino.jpg Εμφανίσεις:  327 Μέγεθος:  127,9 KB

    1 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη Kernel Panic : 23-02-18 στις 10:55

  5. #4
    Μέλος Το avatar του χρήστη ΜαστροΤζεπέτο
    Όνομα
    Δημήτρης
    Εγγραφή
    Feb 2013
    Περιοχή
    Καλλιθέα
    Μηνύματα
    1.726

    Προεπιλογή

    Συγχαρητήρια για την κατασκευή καταρχήν !!! Επειδή κάνω αυτές τις μέρες το δικό μου UV box αλλά με αναλογικό χρονόμετρο (ΝΕ555), τι κόστος έχουν τα Arduinα γενικά ;;; ή ειδικά εδώ, πόσο στοίχισε αυτό ;;; και τι χρόνο θες ;;; σε τι απόσταση με αυτήν την πυκνότητα led ;;;

    0 Not allowed! Not allowed!

  6. #5
    Συντονιστής Το avatar του χρήστη kioan
    Όνομα
     
    Εγγραφή
    Mar 2005
    Περιοχή
    127.0.0.1
    Μηνύματα
    3.169

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από ΜαστροΤζεπέτο Εμφάνιση μηνυμάτων
    τι κόστος έχουν τα Arduinα γενικά ;;; ή ειδικά εδώ, πόσο στοίχισε αυτό ;;;
    Το Arduino Pro mini το βρίσκεις γύρω στα 4-5 euro στην Ελλάδα και κάτω από 2 euro από Ασία.

    0 Not allowed! Not allowed!
    There are 10 types of people in the world: Those who understand binary, and those who don't.

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

    Προεπιλογή

    tnx.
    ο κλώνος Κινεζο-arduino είναι στα 3€ περίπου και 2 μήνες αναμονή. Μην βάλεις αυτό το arduino που βλέπεις εδώ, θέλει διαφορετικό τρόπο προγραμματισμού όπως φαίνεται στις πρώτες φώτο. εγώ το είχα από παλιά.
    Επίσης μην το κάνεις με αυτά τα UV leds, πολλές οι τρύπες, τώρα έχουν βγει UV λεντοταινίες που κάνουν την κατασκευή ποιο εύκολη.

    0 Not allowed! Not allowed!

  8. #7
    Μέλος Το avatar του χρήστη ΜαστροΤζεπέτο
    Όνομα
    Δημήτρης
    Εγγραφή
    Feb 2013
    Περιοχή
    Καλλιθέα
    Μηνύματα
    1.726

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από kioan Εμφάνιση μηνυμάτων
    Λατρεύω τα αναλογικά αλλά είναι πειρασμός η σύγχρονη τεχνολογία !!! Ας μην του χαλάσουμε το υπέροχο ποστ εδώ !!!

    0 Not allowed! Not allowed!

  9. #8
    Μέλος Το avatar του χρήστη ΜαστροΤζεπέτο
    Όνομα
    Δημήτρης
    Εγγραφή
    Feb 2013
    Περιοχή
    Καλλιθέα
    Μηνύματα
    1.726

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από Kernel Panic Εμφάνιση μηνυμάτων
    tnx.
    μην το κάνεις με αυτά τα UV leds, πολλές οι τρύπες, τώρα έχουν βγει UV λεντοταινίες που κάνουν την κατασκευή ποιο εύκολη.
    Έχω ήδη πυκνώσει πολύ τις γραμμές των ταινιών για να μικρύνω τον χρόνο και την απόσταση, για να αξίζει τον κόπο η κατασκευή !!! Ελπίζω αυτές τις μέρες να έχω την πρώτη δοκιμή. πες μας τον δικό σου χρόνο !!! Α, ναι είπες 3΄ !!!!

    0 Not allowed! Not allowed!
    Τελευταία επεξεργασία από το χρήστη ΜαστροΤζεπέτο : 23-02-18 στις 12:16

  10. #9
    Μέλος
    Όνομα
    Μάρκος
    Εγγραφή
    Mar 2012
    Περιοχή
    Θεσσαλονίκη
    Μηνύματα
    2.945

    Προεπιλογή

    Συγχαρητήρια και από μένα και για την κατασκευή αλλά κυρίως για την μερακλήδικη προσαρμογή της επάνω στο κουτί του scaner.

    Αν θέλεις βάλε και το αρχείο του eagle (με ενδιαφέρει το display που δεν το έχω στην βιβλιοθήκη).

    0 Not allowed! Not allowed!
    Όταν όλα τα άλλα έχουν αποτύχει..... RTFM.
    Short instructions: >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> >>>> Good Luck!
    https://diyelectronics-gr.blogspot.gr https://www.facebook.com/groups/872041030200567

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

    Προεπιλογή

    Παράθεση Αρχικό μήνυμα από elektronio Εμφάνιση μηνυμάτων
    Συγχαρητήρια και από μένα και για την κατασκευή αλλά κυρίως για την μερακλήδικη προσαρμογή της επάνω στο κουτί του scaner.

    Αν θέλεις βάλε και το αρχείο του eagle (με ενδιαφέρει το display που δεν το έχω στην βιβλιοθήκη).
    το κατεβάζεις από εδώ.

    0 Not allowed! Not allowed!

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

    elektronio (23-02-18), Lord Vek (23-02-18)

Σελίδα 1 από 7 1 2 3 ... ΤελευταίαΤελευταία

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

  1. BOOM BOX για την παραλια και οχι μονο....
    By KOKAR in forum Παρουσίαση Ολοκληρωμένων Κατασκευών
    Απαντήσεις: 37
    Τελευταίο Μήνυμα: 02-06-18, 22:14
  2. android tv stick (ή και box)
    By haris_216 in forum Συσκευές Εικόνας-Ήχου
    Απαντήσεις: 5
    Τελευταίο Μήνυμα: 08-09-15, 09:38
  3. YAUV Box - (Yet Another UV Box)... Φορητό σύστημα εμφάνισης πλακετών με UV LEDs
    By manolena in forum Παρουσίαση Ολοκληρωμένων Κατασκευών
    Απαντήσεις: 24
    Τελευταίο Μήνυμα: 13-06-14, 05:55
  4. Απαντήσεις: 1
    Τελευταίο Μήνυμα: 07-07-12, 08:08
  5. Απαντήσεις: 28
    Τελευταίο Μήνυμα: 03-07-09, 09:43

Tags for this Thread

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

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