Большие настенные часы на Arduino

b612
Offline
Зарегистрирован: 12.03.2017

lafrof пишет:
выдаёт ошибку в мониторинге.
выбросьте этот модуль. они всё равно врут.
ставьте 3232 которые для распбери с припаяной батарейкой
И вообще лучше мои часики соберите, в них фишек больше и бой
и c ними можно без RTC пожить пока новый модуль приедет

lafrof
Offline
Зарегистрирован: 21.06.2020

да у нас в городе как в деревне хрен что купишь уже сижу смотрю на алике модули. ближайший модуль в новосибирске стоит 115р. доставка 700р.

 

b707
Offline
Зарегистрирован: 26.05.2017

lafrof пишет:

собрал часы на ds1307

какаие именно часы? только в одной этой ветке их, как минимум, десяток... Пишите точно,  откуда брали код и схему?

А лучше просто выложите код тех часов, что собирали. со всеми своими исправленими, которые вы делали. только код вставлять по правилам форума и лучше прятать под спойлер

 

lafrof
Offline
Зарегистрирован: 21.06.2020
/*
2017-12-01 working:
-time,
-time adjust,
-autobrightness,
-day light saving time,
-DS18B20 from Dallas,
-positive temperature,
-negative temperature,
-minus in front of clock.
*/
///////////////////////////// Used libraries
#include <DS1307RTC.h>
#include <RTClib.h> //
#include <Time.h> 
#include <TimeLib.h>
#include <FastLED.h> //
#include <OneWire.h> 
#include <DallasTemperature.h>

RTC_DS1307 rtc;

////////////////////////////////////////////Defining pins on Arduino nano pro
#define NUM_LEDS 86 // 3+((7*4)*4)+2  Number of LEDs in the project
#define COLOR_ORDER BRG  // Define color order for your strip
#define DATA_PIN 6  // Data pin for led comunication
#define DST_PIN 2  // Define DST adjust button pin
#define MIN_PIN 4  // Define Minutes adjust button pin
#define HUR_PIN 5  // Define Hours adjust button pin
#define BRI_PIN 3  // Define Light sensor pin
#define ONE_WIRE_BUS 9 // Data wire of Dalas sensor is plugged into pin D3 on the Arduino 

// Setup a oneWire instance to communicate with any OneWire devices  
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);

////////////// Constructing digits and symbols
CRGB leds[NUM_LEDS]; // Define LEDs strip
                    // 0,0,0,0
                    // 1,1,1,1
                    //  1 2 3 4 5 6 7 8 9 10111213141516171819202122232425262728    one digit led number
byte digits[12][21] = {{0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},  // Digit 0
                       {0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1},   // Digit 1
                       {1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,0},   // Digit 2
                       {1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1},   // Digit 3
                       {1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,0,0,0,1,1,1},   // Digit 4
                       {1,1,1,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1},   // Digit 5
                       {1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},   // Digit 6
                       {0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1},   // Digit 7
                       {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},   // Digit 8
                       {1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1},   // Digit 9 | 2D Array for numbers on 7 segment
                       {1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0},   // Digit *0
                       {0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0}};  // Digit C
                       
bool Dot = true;  //Dot state
bool DST = false; //DST state
bool TempShow = false;
int last_digit = 0;

// int ledColor = 0x0000FF; // Color used (in hex)
long ledColor = CRGB::DarkOrchid; // Color used (in hex)
//long ledColor = CRGB::MediumVioletRed;
//Random colors i picked up
long ColorTable[16] = {
  CRGB::Amethyst,
  CRGB::Aqua,
  CRGB::Blue,
  CRGB::Chartreuse,
  CRGB::DarkGreen,
  CRGB::DarkMagenta,
  CRGB::DarkOrange,
  CRGB::DeepPink,
  CRGB::Fuchsia,
  CRGB::Gold,
  CRGB::GreenYellow,
  CRGB::LightCoral,
  CRGB::Tomato,
  CRGB::Salmon,
  CRGB::Red,
  CRGB::Orchid
};


void setup(){ 
  Serial.begin(9600); 
  LEDS.addLeds<WS2812B, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS); // Set LED strip type
  LEDS.setBrightness(75); // Set initial brightness
  pinMode(DST_PIN, INPUT_PULLUP); // Define DST adjust button pin
  pinMode(MIN_PIN, INPUT_PULLUP); // Define Minutes adjust button pin
  pinMode(HUR_PIN, INPUT_PULLUP); // Define Hours adjust button pin
  TempShow = false; // do not show temperature
  sensors.begin();
  sensors.requestTemperatures(); // Send the command to get temperature readings
   
} 

// Get time in a single number, if hours will be a single digit then time will be displayed 155 instead of 0155////////////
int GetTime(){
  tmElements_t Now;
  RTC.read(Now);
  int hour=Now.Hour;
  int minutes=Now.Minute;
  int second =Now.Second;
  if (second % 2==0) {Dot = false;}
    else {Dot = true;};
  return (hour*100+minutes);
  };

//////////////////////////////// Check Light sensor and set brightness accordingly///////////////////////////////////
void BrightnessCheck(){
  const byte sensorPin = BRI_PIN; // light sensor pin
  // const byte brightnessLow = 100; // Low brightness value
  //const byte brightnessHigh = 170; // High brightness value
  int sensorValue = analogRead(sensorPin); // Read sensor
  Serial.print("Ambient is: ");
  Serial.println(sensorValue);
  sensorValue = map(sensorValue, 0, 255, 10, 100);
  LEDS.setBrightness(sensorValue);
  // if (sensorValue <= 10) {LEDS.setBrightness(brightnessHigh);}
  // else {LEDS.setBrightness(brightnessLow);}  
  };
  
//////////////////////////////////// Convert time to array needed for WS2812B /////////////////////
void TimeToArray(){
  int Now = GetTime();  // Get time
  
  int cursor = 86; // last led number
    leds[0]=0x000000; // blanking dash
    leds[1]=0x000000; // blanking dash
    leds[2]=0x000000; // blanking dash
    leds[3]=0x000000; // blanking dash
    
   Serial.print("Time is: ");Serial.println(Now);
  if (DST){   // if DST is true then add one hour
   Now+=100;
   Serial.print("DST is ON, time set to : ");Serial.println(Now);
  }; 
  if (Dot){leds[42]=ledColor;
           leds[43]=ledColor;}   
    else  {leds[42]=0x000000;
           leds[43]=0x000000;
    };
    
  for(int i=1;i<=4;i++){
    int digit = Now % 10; // get last digit in time
   //////////////////////////// 4 digit control: 
    if (i==1){
      Serial.print("Digit 4 is : ");
      Serial.print(digit);
      Serial.print(" ");
      cursor = 65;
    for(int k=0; k<=20;k++){ 
         Serial.print(digits[digit][k]);
        if (digits[digit][k]== 1){leds[cursor]=ledColor;}
         else if (digits[digit][k]==0){leds[cursor]=0x000000;};
         cursor ++;
        };
       Serial.println();

      if (digit != last_digit)
      {
        cylon();
        ledColor =  ColorTable[random(16)];
      }
      last_digit = digit;
      }
  //////////////////////////// 3 digit control:
    else if (i==2){
       Serial.print("Digit 3 is : ");
       Serial.print(digit);
       Serial.print(" ");
      cursor =44;
    for(int k=0; k<=20;k++){ 
         Serial.print(digits[digit][k]);
        if (digits[digit][k]== 1){leds[cursor]=ledColor;}
         else if (digits[digit][k]==0){leds[cursor]=0x000000;};
         cursor ++;
        };
       Serial.println();
      }
//////////////////////////// 2 digit control: 
    else if (i==3){
       Serial.print("Digit 2 is : ");
       Serial.print(digit);
       Serial.print(" ");
      cursor =21;
      for(int k=0; k<=20;k++){ 
         Serial.print(digits[digit][k]);
        if (digits[digit][k]== 1){leds[cursor]=ledColor;}
         else if (digits[digit][k]==0){leds[cursor]=0x000000;};
         cursor ++;
        };
       Serial.println();
      }
  //////////////////////////// 1 digit control:
    else if (i==4){
       Serial.print("Digit 1 is : ");
       Serial.print(digit);
       Serial.print(" ");
      cursor =0;
      for(int k=0; k<=20;k++){ 
         Serial.print(digits[digit][k]);
        if (digits[digit][k]== 1){leds[cursor]=ledColor;}
         else if (digits[digit][k]==0){leds[cursor]=0x000000;};
         cursor ++;
        };
       Serial.println();
      }
    Now /= 10;
  }; 
};
//////////////////////////////////////////////////// End of time show ///////////////////////////////////////////////////////
////////////////////////////////////////////// Convert temperature to array needed for WS2812B display ////////////////////
void TempToArray(){
  tmElements_t tm;
  RTC.read(tm);  // read time
  if (tm.Second != 10) {        //if seconds are les 20
  TempShow = false;           // then do not show temperature
    return;                     // and still show time
  }
 TempShow = true;              //but if so - show temperature
  sensors.requestTemperatures(); // Send the command to get temperature readings
  int celsius = sensors.getTempCByIndex(0);
  Serial.print("Temp is: ");
  Serial.println(celsius);
  
  int cursor = 86; // what is last led number
    
    leds[42]=0x000000;
    leds[43]=0x000000;
  int digit = celsius; 
///////////////////////////////////////////////////////////// all digits controll:
  for(int i=1;i<=5;i++){
//////////////////////////// 4 digit control:
   if (i==1){
      Serial.print("Digit 4 is : ");
      Serial.print(digit);
      Serial.print(" ");
   cursor = 65;  // 4 digit begins
      for(int k=0; k<=20;k++){ 
        Serial.print(digits[11][k]);
        if (digits[11][k]== 1){leds[cursor]=ledColor;}
         else if (digits[11][k]==0){leds[cursor]=0x000000;};
         cursor ++;
        };
      Serial.println();
    }
//////////////////////////// 3 digit control:
    else if (i==2){
      Serial.print("Digit 3 is : ");
      Serial.print(digit);
      Serial.print(" ");
   cursor =44;  // 3 digit begins
      for(int k=0; k<=20;k++){ 
        Serial.print(digits[10][k]);
        if (digits[10][k]== 1){leds[cursor]=ledColor;}
        else if (digits[10][k]==0){leds[cursor]=0x000000;};
         cursor ++;
        };
      Serial.println();
      }
 //////////////////////////// 2 digit control:  
    else if (i==3){
      int digit = abs(celsius % 10);  // taking only module (only temperature value without minus sign)
      Serial.print("Digit 2 is : ");
      Serial.print(digit);
      Serial.print(" ");
      
   cursor =21;  // 2 digit begins
      
      for(int k=0; k<=20;k++){ 
        Serial.print(digits[digit][k]);
        if (digits[digit][k]== 1){leds[cursor]=ledColor;}
         else if (digits[digit][k]==0){leds[cursor]=0x000000;};
         cursor ++;
        };
      Serial.println();
      }
 //////////////////////////// 1 digit control:
    else if (i==4){
      int digit = abs(celsius / 10);  // taking only module (only temperature value without minus sign)
      Serial.print("Digit 1 is : ");
      Serial.print(digit);
      Serial.print(" ");
   cursor =0;  // 1 digit begins
       for(int k=0; k<=20;k++){ 
        Serial.print(digits[digit][k]);
              if (digits[digit][k]==1){leds[cursor]=ledColor;}
         else if (digits[digit][k]==0){leds[cursor]=0x000000;};
         cursor ++;
        };
      Serial.println();
      }
//////////////////////////// dash control for negative temperature ////////////////////////
    else if (i==5){
      int digit = celsius % 10;
      Serial.print("Digit 1 is : ");
      Serial.print(digit);
      Serial.print(" ");
   cursor =0;  // dash begins
       for(int k=0; k<=3;k++){ 
        Serial.print("dot ");
        if (celsius < 0){leds[cursor]=ledColor;}
         else if (celsius >= 0){leds[cursor]=0x000000;};
         cursor ++;
        };
      Serial.println();
      }
   }; 
};

//////////////////////////////////////////////////////////////////// Tempshow End //////////////////////////

//////////////////////////////////////////////////////////////// Daylight saving time ////////////////////
void DSTcheck(){
   int buttonDST = digitalRead(2);
   // Serial.print("DST is: ");Serial.println(DST);
   if (buttonDST == LOW){
    if (DST){
      DST=false;
      // Serial.print("Switching DST to: ");Serial.println(DST);
      }
      else if (!DST){
        DST=true;
        // Serial.print("Switching DST to: ");Serial.println(DST);
      };
   delay(500);   
   };
  }
//////////////////////////////////////////////////////// End of daylight saving time function ////////////////////////

/////////////////////////////////////////////////////////////////// Time adjust function /////////////////////////////////
void TimeAdjust(){
  int buttonH = digitalRead(HUR_PIN);
  int buttonM = digitalRead(MIN_PIN);
  if (buttonH == LOW || buttonM == LOW){
    delay(500);
    tmElements_t Now;
    RTC.read(Now);
    int hour=Now.Hour;
    int minutes=Now.Minute;
    int second =Now.Second;
      if (buttonH == LOW){
        if (Now.Hour== 23){Now.Hour=0;}
          else {Now.Hour += 1;};
        }else {
          if (Now.Minute== 59){Now.Minute=0;}
          else {Now.Minute += 1;};
          };
    RTC.write(Now); 
    }
  }
////////////////////////////////////////////////////////////////// End of time adjust function /////////////////////////////

/////////////////////////////////////////////////////////////////////// Coool effect function ///////////////////////////////////
void fadeall() { for(int i = 0; i < NUM_LEDS; i++) { leds[i].nscale8(250); }}
void cylon () {
  static uint8_t hue = 0;
    Serial.print("x");
  // First slide the led in one direction
  for(int i = 0; i < NUM_LEDS; i++) {
    // Set the i'th led to red 
    leds[i] = CHSV(hue++, 255, 255);
    
    // Show the leds
    FastLED.show(); 
    // now that we've shown the leds, reset the i'th led to black
    // leds[i] = CRGB::Black;
    fadeall();
    // Wait a little bit before we loop around and do it again
    delay(15);
  }
  Serial.print("x");

  // Now go in the other direction.  
  for(int i = (NUM_LEDS)-1; i >= 0; i--) {
    // Set the i'th led to red 
    leds[i] = CHSV(hue++, 255, 255);
    // Show the leds
    FastLED.show();
    // now that we've shown the leds, reset the i'th led to black
    // leds[i] = CRGB::Black;
    fadeall();
    // Wait a little bit before we loop around and do it again
    delay(15);
  }
}
///////////////////////////////////////////////// Main program loop ///////////////////////////////////////////////////  
void loop()
{ 
  BrightnessCheck(); // Check brightness
  DSTcheck(); // Check DST
  TimeAdjust(); // Check to se if time is geting modified
  TimeToArray(); // Show time
  TempToArray(); // Show temperature
  FastLED.show(); // Display leds array
  if (TempShow == true) delay (5000);
}
/////////////////////////////////////////////////// End of program ////////////////////////////////////////////////

 

lafrof
Offline
Зарегистрирован: 21.06.2020

припаивал датчик dallas и видимо что то пошло не так. До этого часы работали где-то часа полтора.

может кто подскажет как все это дело прикрутить к nodemcu v3 что-бы с интернета подтягивала часы и погоду?

сколько видео не смотрел везде показывают либо на lcd либо на матрицах. а как подключить ленту не могу найти.

 

b707
Offline
Зарегистрирован: 26.05.2017

lafrof пишет:

припаивал датчик dallas и видимо что то пошло не так. До этого часы работали где-то часа полтора.

правильно ли я понял - часы работали. потом вы сунулись в них с паяльником - и они встали? Код остался тем же, что до приделки далласа? Или вы его меняли?

блин, опять этот жуткий кривой код... откуда вы его все тащите, ведь в этой ветке его давно уже в утиль списали. Смотрите код от Одиночки в этой ветке, где в районе 300-320-ого сообщения, он сильно лучше того, что у вас.

 

Цитата:
может кто подскажет как все это дело прикрутить к nodemcu v3 что-бы с интернета подтягивала часы и погоду? сколько видео не смотрел везде показывают либо на lcd либо на матрицах. а как подключить ленту не могу найти.

как подключить ленту - описано в этом коде. Возьмите два скетча часов, один этот, а другой где есть запрос  времени из инета - и перетащите либо сюда код nodemcu, либо туда - код для лент.

а погоду из инета на часах из ленты вы как собрались показывать? на 4х символах?

lafrof
Offline
Зарегистрирован: 21.06.2020

нет часы заработали и я больше код не трогал! после того как подключил датчик все перестало работать.

Я вообще в этом не шарю я этот код под свои часы 4 часа лапатил.

b707
Offline
Зарегистрирован: 26.05.2017

lafrof пишет:

нет часы заработали и я больше код не трогал! после того как подключил датчик все перестало работать.

ну тогда проблема не в коде, очевидно же...

а если датчик отключить - идут?

b707
Offline
Зарегистрирован: 26.05.2017

lafrof пишет:

Я вообще в этом не шарю я этот код под свои часы 4 часа лапатил.

если ничего в этом не шарите, то что вы могли "лапатить" в коде 4 часа?

lafrof
Offline
Зарегистрирован: 21.06.2020

это я догадываюсь нашел в городе отдельную микросхему ds1307n думаю может перепаять вдруг повезет.

b707
Offline
Зарегистрирован: 26.05.2017

lafrof пишет:

это я догадываюсь нашел в городе отдельную микросхему ds1307n думаю может перепаять вдруг повезет.

для начала отключите даллас, а то может вовсе и не в ds1307 дело

lafrof
Offline
Зарегистрирован: 21.06.2020

в этом форуме нашел код где то в начале только там диодов больше было. ну и понеслось, нет что бы посмотреть дальше что люди пишут я давай ковыряться, а оказывается там уже все по полкам разложено где и что нужно переписать.

lafrof
Offline
Зарегистрирован: 21.06.2020

отключил сразу.

b612
Offline
Зарегистрирован: 12.03.2017

отдельные микрухи на старых материнках в любой деревне на любом чердаке

К стати вроде ведь к ардуине можно подцепить второй кварц часовой

а ещё можно взять атом цезия ...

все мои модули на 1307 враЛи безбожно. больше минутЫ в день это куда годится ?! 
Пришлось в прошивке описывать ежесуточную коррекцию и вводить соответствующую настройку и хранить её в еепроме.
И всё равно секунд 10-15 в день гуляли то в одну то в другую сторону.

Какие всё-таки убогенькие тут прошивки! Просто скелетики на ниточках.
Ручные часы в 80-ых годах и то "жирнее" были.
Синклер 48к какие игрули играл !
А тут 32к. это по сути те же 48 в переводе на синклер и проц в 6 раз шустрее.
И на те тупенькие часики.

Если уж часики, то уж надо "полный фарш"
Переливы, всевозможные настройки, таймер, будильникИ, градусники, давление, влажность, мелодии полифонические, бой благородненький.
Ну как иначе ?!
 

lafrof
Offline
Зарегистрирован: 21.06.2020

Добрый день! подскажите еще заменил ds1307 теперь в мониторе порта ошибки нет но часы стоят! прочитал что вроде как нужно бит 7 регистра поставить на 0. ПОМОГИТЕ КАК ЭТО СДЕЛАТЬ???? 2 часа гуглю одно и тоже везде, бит 7 регистра поставить на 0. но как это сделать я так и не нашел. может ткнёте носом!? ПОЖАЛУЙСТА!!!!

b707
Offline
Зарегистрирован: 26.05.2017

lafrof пишет:

Добрый день! подскажите еще заменил ds1307 теперь в мониторе порта ошибки нет но часы стоят! прочитал что вроде как нужно бит 7 регистра поставить на 0. ПОМОГИТЕ КАК ЭТО СДЕЛАТЬ????

никогда не имел дела с ds1307, сорри

b612
Offline
Зарегистрирован: 12.03.2017

lafrof пишет:

Добрый день! подскажите еще заменил ds1307 теперь в мониторе порта ошибки нет но часы стоят! прочитал что вроде как нужно бит 7 регистра поставить на 0. ПОМОГИТЕ КАК ЭТО СДЕЛАТЬ???? 2 часа гуглю одно и тоже везде, бит 7 регистра поставить на 0. но как это сделать я так и не нашел. может ткнёте носом!? ПОЖАЛУЙСТА!!!!

у меня так

  //для DS1307
#ifdef DS1307
  Wire.beginTransmission(0x68);
  Wire.write(0x7);
  Wire.write(0x10);
  Wire.endTransmission();
#endif//# ifdef DS1307
  setSyncProvider(RTC.get);   // the function to get the time from the RTC
  if (timeStatus() != timeSet) {
#ifdef _otladka
    Serial.println(F("RTC netu"));
#endif
  }
  else {
#ifdef _otladka
    Serial.println(F("RTC est"));
#endif
    EstRTC = true;
  }
//......
//......
//......
  PoluchitVremya();
  if (EstRTC){//на случай первого запуска RTC
    if (Vremya_t < 978350400){//12:00:00 01/01/2001
      #ifdef _otladka
        Serial.println(F("RTC pusk"));
      #endif
      Vremya_t = 978350400;
      ZapisatVremya();
      PoluchitVremya();
    }
  }
  GetTime();

ессно в начале

#include <TimeLib.h> // для работы с модулем часов реального времени
#include <Wire.h> // для работы с модулем часов реального времени
time_t Vremya_t = 0; //текущее время
tmElements_t Vremya_el; //структура, в которой хранится считанное с РТС
и там ещё
void PoluchitVremya() { //вызывается строго раз в секунду актуализирует Vremya_el_t
  if (EstRTC) {
    #ifdef __DS_RTC
      RTC.read(Vremya_el);
    #endif //#ifdef __DS_RTC    
    Vremya_t = makeTime(Vremya_el);
  } else {
    Vremya_t++;
    breakTime(Vremya_t, Vremya_el);
  }
}
void ZapisatVremya() {
  if (EstRTC) {
    #ifdef __DS_RTC
      RTC.write(Vremya_el);
      RTC.read(Vremya_el);
    #endif //#ifdef __DS_RTC    
  } else {
    Vremya_t = makeTime(Vremya_el);
    //Vremya_el = Now;
  }
}

 

lafrof
Offline
Зарегистрирован: 21.06.2020

Добрый день! Всем кто поучаствовал ОГРОМНОЕ СПАСИБО!!!!!!!!! короче заменил микросхему ds1307 на модуле и кварц, снял со старой материнки и всё пошло. осталось с кодом побороться под далас, попробую сам, не факт что получится, но...

lafrof
Offline
Зарегистрирован: 21.06.2020

Народ подскажите еще почему в мониторе порта включаю пример далас температуру показывает, а в скетче который скинул ранее на часах показывает одно и тоже с датчиком и без (t 7 c) что типо этого) 

lafrof
Offline
Зарегистрирован: 21.06.2020

lafrof
Offline
Зарегистрирован: 21.06.2020

это даже не т в первом сегменте.

b612
Offline
Зарегистрирован: 12.03.2017

lafrof пишет:
Народ подскажите еще почему в мониторе порта включаю пример далас температуру показывает, а в скетче который скинул ранее на часах показывает одно и тоже с датчиком и без (t 7 c) что типо этого)
тут вряд ли кто будет ковырять чужой код. тем более летом, тем более такая ерундовая поделка.
Одно дело когда просят совета касательно языка или библиотек.
Другое, когда просят отладить свои каракули.(шкура ягнёнка)
Попробуйте залить мою прошивку. Конечно придётся слегка перепаять схему, но она ведь у вас скорее всего на проводах а не на плате. Гарантирую что оно стоит того.
За то он стопудово рабочий. И даже передаёт в порт, что именно так, а что не так.
И работает и при наличии датчиков и без них и вообще даже на голой ардуине.
Тупо собираешь с нуля за 3-4-5 часов и и вот тебе крутой девайс.
И даже ардуиноИДЕ не надо устанавливать, а только синапрог

Если хотите научиться программировать, могу предложить вместе доработать мой "сталкер"
Есть ещё работа, развести плату для часиков и ещё пару интересных плат
Зеркало с подсветкой, часиками и датчиком жестов
Архимедов уровнемер.
 

lafrof
Offline
Зарегистрирован: 21.06.2020

Добрый день! с датчиком разобрался! только не могу понять первая цифра не корректно показывает не ткнете носом, что-где ?

b707
Offline
Зарегистрирован: 26.05.2017

lafrof пишет:

Добрый день! с датчиком разобрался! только не могу понять первая цифра не корректно показывает не ткнете носом, что-где ?

попробуйте строчку 235 (в коде #604) поменять на

for(int i=1;i<5;i++){

напишите потом результат

lafrof
Offline
Зарегистрирован: 21.06.2020

ОГРОМНОЕ СПАСИБО за ваши труды и ЗНАНИЯ!!!!! Все супер! когда подьедут железки из китая поменяю код как у одиночки.

lafrof
Offline
Зарегистрирован: 21.06.2020

и правда смена цвета по минутам очень раздражает!

b707
Offline
Зарегистрирован: 26.05.2017

lafrof пишет:

и правда смена цвета по минутам очень раздражает!

В коде Одиночки это настраивается.

А пока можете убрать смену цвета в строке 165, вместо этого впишите туда любой постоянный цвет, например вот так:

ledColor =  CRGB::Blue;

цвет любой из таблички в строке 66

b612
Offline
Зарегистрирован: 12.03.2017

lafrof пишет:
и правда смена цвета по минутам очень раздражает!
Нормально так получилось !
Вижу первый "воздушный" корпус сделаный руками,
если не ошибаюсь.
Аж самому захотелось так сделать.

Сделайте, пожалуйста видео

Можно ещё попробовать плёнку транспозитную у рекламщиков попросить
её ещё называют "для коробов"
Или можно из пенопласта от потолочной плитки .

lafrof
Offline
Зарегистрирован: 21.06.2020

СПАСИБО!!! цвет статичен, хрен с ним с радугой каждую минуту, ткните еще что изменить что-бы температура 2 раза в минуту показывалась. а то показывается вроде через 7 секунд после смены минуты, и следующий вывод температуры через минуту. Всем спасибо за участие! видео если нужно попробую снять выложить.

lafrof
Offline
Зарегистрирован: 21.06.2020

заказал у человека что-бы распечатал на 3d принтере. вот думаю может как то затанировать. слишком ярко выражены светики.

b707
Offline
Зарегистрирован: 26.05.2017

lafrof пишет:

СПАСИБО!!! цвет статичен, хрен с ним с радугой каждую минуту

радуга убирается закомментированием соседней с цветом строчки - строки 164.

Цитата:
думаю может как то затанировать. слишком ярко выражены светики.

ну это кому как проще. Одному проще затонировать, другому - понизить яркость в коде...

lafrof
Offline
Зарегистрирован: 21.06.2020

Сейчас попробую.

lafrof
Offline
Зарегистрирован: 21.06.2020

ВОТ СПАСИБО!!!! Теперь ок. Может еще кто скажет про отображение температуры и будет шоколад. Я просто почему то быстрее учусь с подсказок и тыканьем носом чем с литературы. Как то запоминается лучше.

b707
Offline
Зарегистрирован: 26.05.2017

lafrof пишет:

Я просто почему то быстрее учусь с подсказок и тыканьем носом чем с литературы. Как то запоминается лучше.

"не обманывай себя, Маша...."

lafrof
Offline
Зарегистрирован: 21.06.2020

даже не думал смотрю в текст и вижу миллиард букв и слов!  а когда мне показывают на ошибки или моё не знание что конкретно в этом случае здесь нужно сделать так а не так, врезается в память.

b707
Offline
Зарегистрирован: 26.05.2017

lafrof пишет:

даже не думал смотрю в текст и вижу миллиард букв и слов!  а когда мне показывают на ошибки или моё не знание что конкретно в этом случае здесь нужно сделать так а не так, врезается в память.

вот если б вы потратили на поиск этой ошибки неделю, закопались в миллиард букв, но нашли ее сами - представьте, как бы вам это в память врезалось.

А когда вас ткнули в конкретную строчку, вроде исправил - а в соседней строчке была похожая ошибка - и не заметил. Я кстати говорю не вообщем, а совершенно конкретно - я вам сегодня ошибки в строчках 164 и 165 отдельно показывал, хотя после исправления цвета могли бы и сами догадаться, как радугу в соседней строке убрать.

Так что повторяю - "не обманывай себя. Маша....". Грош цена такому обучению, когда носом в конкретные строки тыкают

lafrof
Offline
Зарегистрирован: 21.06.2020

Ну по моему вы тут не совсем правы, я занимаюсь фотографией и всё что с этим связано, а ардуинка это хобби, которым я хочу заниматься. Я не думаю что при случае если вам захочется сделать хорошую фотографию вы начнете изучать алгоритм и работу  конкретно вашего фотоаппарата , и начнете штрудировать сотни книг по работе с  фотошопом, а просто зайдете на ютюб и посмотрите конкретно нужную в данный момент информацию. но это лишь моё мнение! вот я часами могу заниматься только после работы, и то жена орёт что я занимаюсь хренью и не уделяю ей внимания, если вы занимаетесь  программированием это же не значит что все должны это понимать, (боже это же элементарно ) , когда ко мне приходят с какой нибудь фотографией у меня в голове тоже возникает вопрос что за хрень, это же просто как вы могли снять такое г..... ? так что мне кажется нужно помогать если ты в чем то силен. Спасибо за помощь!

b612
Offline
Зарегистрирован: 12.03.2017

Это называется спор черного логика (логика конкретных фактов) с белым логиком (системмная логика).
Я лично белый логик )
Моя системмная логика говорит, что перед тем, как рассматривать и изобретать устройство велосипедной педали, не плохо-бы сформулировать, чем мы тут занимаемся по БОЛЬШОМУ счету.
А мы изобретаем велосипед.
Соответственно перед тем, как изобретать педали, не плохо-бы ознакомиться с тем, что уже изобретено.
А вся эта печаль с цветами и интервалами уже год как изобретена и воплощена мной.
И воплощена на уровне не плохого электронщика, не плохого программиста и достаточно взыскательного пользователя.

Давно пора-бы отписаться от этой темы и не наблюдать, как люди снова и снова и снова изобретают тратят время на то, что бери и едь. БЕСПЛАТНО.

https://www.youtube.com/watch?v=7eOAVlV6NaM

https://www.youtube.com/watch?v=SFapLHFcLQc

b707
Offline
Зарегистрирован: 26.05.2017

b612 пишет:

А вся эта печаль с цветами и интервалами уже год как изобретена и воплощена мной.
И воплощена на уровне не плохого электронщика, не плохого программиста и достаточно взыскательного пользователя.

b612, если вы хотите повысить вероятность, что кто-то хотя бы попробует вашу прошивку - начните с переделки ее кода под схему часов из этой ветки. Потому что смешно слушать, сколько всего вы предлагаете людям перепаять только для того чтобы оценить ваше творчество (цитата):

В принципе тут перепаивать не много, чтобы опробовать мою прошивку.
1. Тут очередность разрядов наоборот
2. Очередность сегментов с левым поворотом, а у меня с правым.
3. Двоеточие тут вклинено а у меня после всех цифр
4. Гирлянда у меня не на 5-ом а на 6-ом пине.
Кнопки странным образом совпали. Часики и барометр вроде тоже.
и уже заработает

Вообще, для "не плохого программиста" поменять эти параметры в коде - вопрос если не 10 минут. то максимум получаса.  Зачем же заставлять людей переделывать схему, когда все это легко меняется в коде?

b612
Offline
Зарегистрирован: 12.03.2017

b707 пишет:
b612, если вы хотите повысить вероятность
вот ещё
Кто хочет повторить тот повторяет безо всяких проблем.
Люди которые повторяли мои часики нарисовали для меня мою схему когда её не было.
Нарисовали мне корпус 
У меня в коллекции штук 7 видосов от тех кто повторял часы.
Несколько фишек было реализовано с подачи тех, кто повторял.
Крайние несколько человек даже не смогли придумать каких-то ещё новых хотелок.
Варианты прошивки под 4 разных схемы.
Я их-то поддерживать уже не хочу, не то, что делать ещё под несколько вариантов схемы из этой темы.
Тем более, что схема гирлянды тут ущербная. Как минимум надо добавить десятичные точки и минус.
А ещё 2 светика для правого козырька буквы "Т" или значка градусов.

Кому нравится изобретать, всё равно будут изобретать.

Только вот лучше-бы изобретали что-то новое.

Green
Offline
Зарегистрирован: 01.10.2015

b612 пишет:

А вся эта печаль с цветами и интервалами уже год как изобретена и воплощена мной.

И воплощена на уровне не плохого электронщика, не плохого программиста и достаточно взыскательного пользователя.

"Всё я, да я, да кто ж ты такой?" часовых дел мастер.
Ну как классно хвалить самого себя, ну полный пиздец, ведь другой никто и не похвалит... Этто чтотто!(

b612
Offline
Зарегистрирован: 12.03.2017

lafrof неизбежно столкнётся со всеми печалями. и с неточностью 1307 и с миганием точек и с дёрганьем яркости при смене цифр и уже столкнулся с глупой напрасной сменой цветов и с необходимостью первого запуска 1307. И возможно с самозасветкой фоторезистора.
Это вид спорта такой. Найди все грабли сам.
Сколько процентов граблей он уже нашел ?
При каком счете он удовлетворится и забросит это дело ?
 

 

 

b612
Offline
Зарегистрирован: 12.03.2017

Green пишет:
ведь другой никто и не похвалит... Этто чтотто!(
форумы это аналог того зеркальца
"скажи, да всю правду доложи. Я ль ..."
И вы тоже тут же с этим же девайсом в руках  )

и даже lafrof

b707
Offline
Зарегистрирован: 26.05.2017

Green пишет:

Ну как классно хвалить самого себя, ну полный пиздец, ведь другой никто и не похвалит... Этто чтотто!(

да лан, он же не только себя хватит. но и настоящих авторов своих часов :

>> Люди которые повторяли мои часики нарисовали для меня мою схему когда её не было.
>> Нарисовали мне корпус

я думаю, что эти люди и код ему нарисовали :) поэтому-то код такой большой и путаный - потому что его писало 7 человек и каждый вставил туда все свои хотелки :)

Green
Offline
Зарегистрирован: 01.10.2015

b612 пишет:

И вы тоже тут же с этим же девайсом в руках  )

Нет, это не отмазка.

b612
Offline
Зарегистрирован: 12.03.2017

Green пишет:
Нет, это не отмазка.
А кто пытается отмазываться ?

b707
Offline
Зарегистрирован: 26.05.2017

b612 пишет:

Green пишет:
Нет, это не отмазка.
А кто пытается отмазываться ?

зеркальце к себе поверните :)

b612
Offline
Зарегистрирован: 12.03.2017

b707 пишет:
b612 пишет:
Green пишет:
Нет, это не отмазка.
А кто пытается отмазываться ?
зеркальце к себе поверните :)
как же с ним иначе-то разговаривать ?
Конечно я хвастаюсь. 
И вы и Серый и даже Лавров
Пока что счет в мою пользу )

Green
Offline
Зарегистрирован: 01.10.2015

Попробуй с таким подискутировать! Маничка величия налицо.(

bwn
Offline
Зарегистрирован: 25.08.2014

Green пишет:

Попробуй с таким подискутировать! Маничка величия налицо.(

Ну да, личинка Архата: "Давно пора отписаться, но если не я, то кто-же?"

Ждем следующую стадию - "Все напыщенные козлы, неофитов загнобили, форум загнется........"