Устранил замечания. Добавил второй датчик температуры, некоторые настройки часов (все внутри в описании). Как сделать настройка цвета температуры чтоб настраивалась из прошивки или часов.
								Вложения
- 
		
			
		
		
		26.3 KB Просмотры: 218
Вячеслав это Вы сами придумали или как?@bort707, на заметку строка
led_color = color_table[set_color - 1];
при set_color = 0 ошибку не вызывает, просто led_color = последнему элементу массива color_table [ ]
byte a[] = {11,21,31,41,51,55};
void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
byte element =0;
Serial.print("Element #-1 =");
Serial.println(a[element-1]);
}
void loop() {}Element #-1 =184Ну такое использование указателей скорей можно отнести к "грязным хакам", поскольку очень легко можно запутаться самому и получить распашку памятиНу в некоторых случаях такое может быть, но скорее эти случаи исключения и хаки. например если в массиве 256 элементов, а указатель имеет тип uint8_t. Но такое чревато...
Простите, но Вы сейчас именно спорите. Вы пример-то запускали? Можете попробовать запустить его не в Ардуино, а например в любом компиляторе С на винде или в линуксе.Спорить не буду. Может Ардуино IDEпри компиляции что-то подправляет.
эта ошибка вылезет не при любом запуске, а только после полного сброса, когда вы в ЕЕПРОМ пишете нули.Просто написал по факту как было и как работало.
Извините пожалуйста, а эта прошивка на 2 датчика рабочая или бета версия???И там отображение "ДОМ (С)", а "УЛИЦА (0)", как выше на картинках которые , я рисовал??? А то уже ручки чешутся вкрутить второй датчикУстранил замечания. Добавил второй датчик температуры, некоторые настройки часов (все внутри в описании). Как сделать настройка цвета температуры чтоб настраивалась из прошивки или часов.
Так второй датчик не мешает же, в настройках можно выбрать вариантыдавайте с одним датчиком допилим прошивку а потом и со вторым
PIN 10 // pin комнвтного датчика температуры DS18B20 только плюсовая до десятыха вешается второй параллельно ?
Можно замкнуть вывод А0 на +5в и будет максимальная яркостьВсем привет!!! Может для кого-то покажется глупым мой вопрос, уточню, я в программирование не чего не понимаю.
Возможно ли осуществить память настроек?
а то при моей первой сборки часов, я не ставил фоторезистор, и когда произошёл сбой по питанию (отключили свет), то я аж испугался когда часы потухли, думал всё кабздец пришёл, а оказалось, что по умолчании в настройках стоит яркость на 0, и её нужно было добавить, еще цвет стал меняться каждую минуту, и отображении даты и температуры раз в минуту
Спасибо большое, я поставил фоторезистор "так надёжнее"Можно замкнуть вывод А0 на +5в и будет максимальная яркость
void DigitOut(int cursors, int digit){  // Функция вывода на диоды
  int cursor = cursors;
  for(int k = 0; k <= 6; k++){
    if (digits[digit][k] == 1){
      for(int i = 1; i <= num_point; i++){leds[cursor] = led_color; cursor++;}}
    else if (digits[digit][k] == 0){
      for(int i = 1; i <= num_point; i++){leds[cursor] = 0x000000; cursor++;}
      }}}uint8_t  digits[] = {
  0b00111111,     // Digit 0
  0b00100001,     // Digit 1
  0b01110110,     // Digit 2
  0b01110011,     // Digit 3
  0b01101001,     // Digit 4
  0b01011011,     // Digit 5
  0b01011111,     // Digit 6
  0b00110001,     // Digit 7
  0b01111111,     // Digit 8
  0b01111011,     // Digit 9
  0b01111000,     // Digit * градус  10
  0b00011110,     // Digit C         11
  0b01111100,     // Digit P         12
  0b01111000,     // Digit % знак % из двух частей 13
  0b01000111,     // Digit % знак % из двух частей 14
  0b00000000      // Blank
};void BrightDigit (uint8_t digit, uint8_t cursor)
{
  for (uint8_t mask = 0b01000000; mask > 0; mask = mask >> 1)
  {
    for (uint8_t i = 0; i < LEDS_IN_SEGMENT; i++)
    {
      leds[cursor] = (digit & mask) ? ledColor : 0;
      cursor ++;
    }
  }
}#include <iarduino_Pressure_BMP.h>
iarduino_Pressure_BMP sensorTempHome(0x76);
---------------------------
        case 20: {            // Режим вывода температуры внутри
      if(temp_flag == false){
              sensorTempHome.begin();
              Serial.println (sensorTempHome.temperature);
----------------------------
-135.36
-135.36
-135.36#define max_bright 100       // максимальная яркость (0 - 255)
#define min_bright 10        // минимальная яркость (0 - 255)
#define bright_constant 1000  // константа усиления от внешнего света (0 - 1023), чем МЕНЬШЕ константа, тем "резче" будет прибавляться яркость
#define coef 0.1             // коэффициент фильтра (0.0 - 1.0), чем больше - тем медленнее меняется яркость
void BrightnessCheck() {
  if (auto_bright) {                         
    if (millis() - bright_timer > 100) {     
      bright_timer = millis();               
      new_bright = map(analogRead(BRI_PIN), 0, bright_constant, min_bright, max_bright);   
      new_bright = constrain(new_bright, max_bright, min_bright);    //поменял местами max и min                     
      new_bright_f = new_bright_f * coef + new_bright * (1 - coef);
      LEDS.setBrightness(new_bright_f);}}};void BrightnessCheck(){
  const byte sensorPin = A0; 
  const byte brightnessLow = 5;   // низкая яркость
  const byte brightnessMid = 10;  // низкая яркость
  const byte brightnessHigh = 40; // высокая яркость
  const byte brightnessDay = 60;  // высокая яркость
 int sensorValue = analogRead(sensorPin);
  sensorValue = map(sensorValue, 0, 1023, 0, 255);
  LEDS.setBrightness(sensorValue);
//если в комнате светло, то светит ярче, если мало света, то тусклее, в ночном режиме светит тускло
    if(sensorValue>=221 && sensorValue <=240){LEDS.setBrightness(brightnessHigh);delay(1000);}
        else
    if(sensorValue>=241 && sensorValue <=252){LEDS.setBrightness(brightnessMid);delay(1000);}
        else
    if(sensorValue>=253){LEDS.setBrightness(brightnessLow);delay(1000);}
        else
    if(sensorValue<=220){LEDS.setBrightness(brightnessDay);delay(1000);}};if(sensorValue>=101 && sensorValue <=200){LEDS.setBrightness(brightnessHigh);delay(1000);}
        else
    if(sensorValue>=201 && sensorValue <=252){LEDS.setBrightness(brightnessMid);delay(1000);}
        else
    if(sensorValue>=253){LEDS.setBrightness(brightnessLow);delay(1000);}
        else
    if(sensorValue<=100){LEDS.setBrightness(brightnessDay);delay(1000);}};