Печка для сауны с управлением на Ардуино Нано (Проект новичка)

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

у температуры добавь значок температура, у времени все 4 цифры заняты цифрами)))

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

jeka_tm пишет:

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

у температуры добавь значок температура, у времени все 4 цифры заняты цифрами)))


Там 3 цифры и 3 кнопки :)
Как выглядит значек температуры на 7 сегментном индикаторе?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

поменять нафиг дисплей!!! ну что за изврат

только без С в конце. хотя если дисплей переделать то можно и впихнуть

ТС, не занимайся фигней, вот

http://ru.aliexpress.com/item/20pcs-lot-4-digital-display-with-adjustable-brightness-LED-module-clock-Point-Accessories-Blocks-for-arduino/2024073518.html

паять даже не придется

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

jeka_tm пишет:

поменять нафиг дисплей!!! ну что за изврат

только без С в конце. хотя если дисплей переделать то можно и впихнуть

ТС, не занимайся фигней, вот

http://ru.aliexpress.com/item/20pcs-lot-4-digital-display-with-adjustable-brightness-LED-module-clock-Point-Accessories-Blocks-for-arduino/2024073518.html

паять даже не придется

Надо мужественно преодолевать тяготы и лишения и т.д.
Ну не ищем мы легких путей, не ищем.

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

Вот Ваши кнопки, проверил в Протеусе додает и отнимает.

Аналогично сделаете с таймером.



#include <Bounce.h>;

#define BUTTON_TEMP 7  //кнопка установки температуры
#define BUTTON_TIME 6  //кнопка установки ВРЕМЕНИ
#define UP 5          //кнопка увеличения значения
#define DOWN 4        //кнопка уменьшения значения

bool kn_c=0;
bool flag_kn_c =0;
bool kn_tim = 0;
int led = 13;
int temperatura = 50;

//создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс.
Bounce kn_tempert = Bounce(BUTTON_TEMP,2); 
Bounce kn_timer = Bounce(BUTTON_TIME,5); 
Bounce kn_UP = Bounce(UP,5); 
Bounce kn_DOWN = Bounce(DOWN,5); 

void setup() {
  // put your setup code here, to run once:
  pinMode(led, OUTPUT);
  pinMode(BUTTON_TEMP, INPUT_PULLUP); 
  pinMode(BUTTON_TIME, INPUT_PULLUP);
  pinMode(UP, INPUT_PULLUP);
  pinMode(DOWN, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop()
{
kn_tempert.update();
kn_timer.update();
kn_UP.update();
kn_DOWN.update();

if(!kn_tempert.read() && flag_kn_c==0){
    flag_kn_c=1;
}
if(kn_tempert.read() && flag_kn_c==1){
    if (kn_c==0) kn_c=1;
     else kn_c = 0;
    flag_kn_c=0;
}
Serial.println(temperatura);


if (kn_c)
{
  if ( !kn_UP.read() )
  {
  	temperatura++;
    delay(300);
  }
 if (!kn_DOWN.read() )
  {
  	temperatura--;
    delay(300);
  }
}


}

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

vosara пишет:

Вот Ваши кнопки, проверил в Протеусе додает и отнимает.

Аналогично сделаете с таймером.


Какой добрый пионер... какая разница что у ТС всего 3 кнопки, а не 4 и не 5... главное же помог, а не то что некоторые. ..

Bobrov.Anatoliy
Offline
Зарегистрирован: 29.08.2013

Большое спасибо! Буду дальше разбираться. 

Не могли бы вы скинуть на мою почту bobrov.anatoliy@gmail.com свой номер телефона и сотового оператора, я хотел бы Вас отблагодарить, а то неудобно вновь к Вам обращаться будет.

Суважением, Анатолий

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

пухлявый тебя отблагодарить хотят?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

jeka_tm пишет:

пухлявый тебя отблагодарить хотят?


Да шоб я знал с кем от беседует. Прл меня он там где то гадости писал. :) может голову напекло? !

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

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

По поводу Вашего проэкта на мой взгляд алгоритм следующий:

1-кнопку нажали отпустили (клик) - вошли в режим редактирования (желательно зажечь диод для для наглядности,  )

2-редактируем UP-DOWN

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

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

vosara пишет:

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

По поводу Вашего проэкта на мой взгляд алгоритм следующий:

1-кнопку нажали отпустили (клик) - вошли в режим редактирования (желательно зажечь диод для для наглядности,  )

2-редактируем UP-DOWN

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


Для тех кому лень вообще понимать суть
http://arduino.ru/forum/programmirovanie/pechka-dlya-sauny-s-upravleniem...

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

А вот алгоритм который предлагает Puhlyaviy, Если я его првильно понял.

Он также как и мой имеет право на существование. Так что выбирайте


//Temp777.ino
#include <Bounce.h>;

#define BUTTON_TEMP 7  //кнопка установки температуры
//#define BUTTON_TIME 6  //кнопка установки ВРЕМЕНИ
#define UP 5          //кнопка увеличения значения
#define DOWN 4        //кнопка уменьшения значения

int kn_c=0;
bool flag_kn_c =0;
bool kn_tim = 0;
int led_C = 13; //светодиод температуры
int led_T = 8; //Светодиод таймера
int temperatura = 50;
int timer = 80;

//создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс.
Bounce kn_tempert = Bounce(BUTTON_TEMP,2); 
//Bounce kn_timer = Bounce(BUTTON_TIME,5); 
Bounce kn_UP = Bounce(UP,5); 
Bounce kn_DOWN = Bounce(DOWN,5); 

void setup() {
  // put your setup code here, to run once:
  pinMode(led_C, OUTPUT);
  pinMode(led_T, OUTPUT);
  pinMode(BUTTON_TEMP, INPUT_PULLUP); 
 // pinMode(BUTTON_TIME, INPUT_PULLUP);
  pinMode(UP, INPUT_PULLUP);
  pinMode(DOWN, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop()
{
kn_tempert.update();
//kn_timer.update();
kn_UP.update();
kn_DOWN.update();

if(!kn_tempert.read() && flag_kn_c==0){
    flag_kn_c=1;
}
if(kn_tempert.read() && flag_kn_c==1){
    if (kn_c >= 5) kn_c = 0;
     kn_c++;
    flag_kn_c = 0;
}
Serial.println(temperatura);

switch (kn_c) {
    case 1:
    digitalWrite(led_C, HIGH);//Обозначаем что вошли в регулировку температуры
 if ( !kn_UP.read() )
  {
  	temperatura++;
    delay(300);
  }
 if (!kn_DOWN.read() )
  {
  	temperatura--;
    delay(300);
  }
      break;
    case 2:
      digitalWrite(led_C, LOW);
      digitalWrite(led_T, HIGH); //Обозначаем что вошли в регулировку таймера
 if ( !kn_UP.read() )
  {
  	timer++;
    delay(300);
  }
 if (!kn_DOWN.read() )
  {
  	timer--;
    delay(300);
  }
      break;
    case 3:
      digitalWrite(led_C, HIGH); //оба горят Обозначаем что вошли в режим записи
      digitalWrite(led_T, HIGH);
      // Здесь проверяем изменили температуру и таймер если да пишем в память
      kn_c = 4;
      break;
      case 4:
      digitalWrite(led_C, LOW); //оба не горят Обозначаем что вышли из режима настройки
      digitalWrite(led_T, LOW);
      break;
  }

}

Bobrov.Anatoliy
Offline
Зарегистрирован: 29.08.2013

vosara пишет:

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

По поводу Вашего проэкта на мой взгляд алгоритм следующий:

1-кнопку нажали отпустили (клик) - вошли в режим редактирования (желательно зажечь диод для для наглядности,  )

2-редактируем UP-DOWN

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

Еще раз спасибо! работает как часы, по Вами предложенному алгоритму, спасибо еще раз, сейчас дописываю по времени и надеюсь, к вечеру установлю в сауну, естественно приглашу париться!!

вот код:

// Версия 1.6 02.08.15 работает термометр и две кнопки - включения и подсветки
// настраиваем кнопки установки температуры, вводим утановленную температуру
// проверяем условие включения нагревателей работает!!!
// проект управления печкой сауны, Arduino Nano, 7сегментный трехразрядный дисплей,
// драйвер дисплея MAX7219, шесть кнопок управления, датчик температуры Dallas

#include <LedControl.h>//Подключаем библиотеку для работы с дисплеем
#include <OneWire.h>// Подключаем библиотеку для работы с шиной OneWire
#include <Bounce.h>;//подключаем библиотеку Bounce
#include <EEPROM2.h>// Подключаем библиотеку для работы с ARDUINO EEPROM
#include <DallasTemperature.h>//Подключаем библиотеку для работы с термометром
OneWire oneWire(3);// Термометр будет подключен на Pin3
LedControl lc=LedControl(12,11,10,1);// присваиваем адрес дисплею

#define ONE_WIRE_BUS 3
// разбираемся с кнопками:
//дефайним значения пинов с кнопкой и со светодиодом
#define BUTTON1 9     // кнопка выключения
#define OFF 18        //выход выключателя
#define BUTTON 8      //кнопка подсветки
#define LED 19        //выход подсветки
#define BUTTON_TEMP 7  //кнопка установки температуры
#define BUTTON_TIME 6  //кнопка установки ВРЕМЕНИ
#define UP 5          //кнопка увеличения значения
#define DOWN 4        //кнопка уменьшения значения
#define OUTHET1 16    //выход нагревателя 1
#define OUTHET2 17    //выход нагревателя 2

//==================================================================================================
//обозначаем кнопки меню
//создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс.
Bounce bouncer = Bounce(BUTTON,2); 
//создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс.
Bounce bouncor = Bounce(BUTTON1,2); 
//создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс.
Bounce kn_tempert = Bounce(BUTTON_TEMP,2); 
//создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс.
Bounce kn_timer = Bounce(BUTTON_TIME,5); 
//создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс.
Bounce kn_UP = Bounce(UP,5); 
//создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс.
Bounce kn_DOWN = Bounce(DOWN,5); 
//===================================================================================================

//задаем начальное состояние светодиода "выключен"
int ledValue = LOW;
//задаем начальное состояние прибора
int OFFValue = LOW;
//Обьявляем состояние выходов нагревателей
boolean outhet1Status=LOW;
boolean outhet2Status=LOW;
//Объявим переменные для задания задержки
long previousMillis1 = 0;
long interval1 = 1000; // интервал опроса датчиков температуры
bool flag_kn_c=0;// создаем булевую переменную состояния кнопки
bool kn_tim = 0;// переменная для кнопки time
bool kn_c=0;// создаем булевую переменную
int temperatura_set = 50; // переменная для заданного значения температуры
int led = 13;       //индикатор нажатия кнопки установки температуры
//=================================================================****

DallasTemperature sensors(&oneWire);
//Создаем переменные для работы с термометром
DeviceAddress tempDeviceAddress;  //переменная для хранения адреса датчика
float temp1=0;        //переменная для хранения температуры
int T1;         // переменная текущей температуры
int ones;         //переменная для печати
int tens;         //переменная для печати
int hundreds;     //переменная для печати
//================================================================*****

void setup() {
 //определяем режимы работы пинов
      pinMode(BUTTON,INPUT);
  pinMode(led,OUTPUT);
      pinMode(BUTTON1,INPUT);
  pinMode(OFF,OUTPUT);
  pinMode(OUTHET1,OUTPUT);
  digitalWrite(OUTHET1,LOW);
  pinMode(OUTHET2,OUTPUT);
  digitalWrite(OUTHET2,LOW);
      pinMode(BUTTON_TEMP,INPUT_PULLUP);
      pinMode(BUTTON_TIME,INPUT_PULLUP); 
      pinMode(UP,INPUT_PULLUP);
      pinMode(DOWN,INPUT_PULLUP);
//Считаем из постоянной памяти заданную температуру
//Заданная температура будет храниться по адресу 1
  temperatura_set=EEPROM_read_byte(1);
//зададим исходные параметры для дисплея
lc.clearDisplay(0);// clear screen
lc.shutdown(0,false);// turn off power saving, enables display
lc.setIntensity(0,7);// sets brightness (0~15 possible values)
lc.setScanLimit(1, 3);
//Инициализируем термодатчик и установим разрешающую способность 12 бит
sensors.begin();
sensors.getAddress(tempDeviceAddress, 0);
sensors.setResolution(12);
lc.clearDisplay(0);                 //очищаем экран
 Serial.begin(9600);
}

//=====================================================================*************

void loop(void){
{
  //Включаем прибор
  //если сменилось состояние кнопки On/Off
  if ( bouncor.update() ) 
  {
    //если считано значение 1
    if ( bouncor.read() == HIGH) {
        //если свет был выключен, будем его включать
        if ( OFFValue == LOW ) {
        OFFValue = HIGH;
        //если свет был включен, будем выключать
     } 
     else {
       OFFValue = LOW;
     }
     //записываем значение вкл/выкл на пин со светодиодом 
     digitalWrite(OFF,OFFValue);
    }
  }
//=========================================================
// включаем подсветку  
{
  //если сменилось состояние кнопки Light
  if ( bouncer.update() ) {
      //если считано значение 1
      if ( bouncer.read() == HIGH) {
        //если свет был выключен, будем его включать
        if ( ledValue == LOW ) {
       ledValue = HIGH;
     //если свет был включен, будем выключать
     } else {
       ledValue = LOW;
     }
     //записываем значение вкл/выкл на пин со светодиодом 
     digitalWrite(LED,ledValue);
    }
  }
}
//==========================================================***********************
//Задаем температуру, выбрав ее кнопкой TEMP
{
kn_tempert.update(); //проверяем состояние кнопок
kn_timer.update();
kn_UP.update();
kn_DOWN.update();

if(!kn_tempert.read() && flag_kn_c==0){
    flag_kn_c=1; //Если кнопка температуры нажата заносим 
                 //значение состояния кнопки в переменную flag
}
if(kn_tempert.read() && flag_kn_c==1){ 
    if (kn_c==0) kn_c=1;
     
     else kn_c = 0;
            flag_kn_c=0;
           }
   }

if (kn_c)
{
  if ( !kn_UP.read() )
  {
    temperatura_set++;
    delay(300);
     EEPROM_write(1, temperatura_set); //записываем значение температуры в память по адресу 0
// Serial.println(temperatura_set);
//     T1 = temperatura_set*10;           //в этом блоке печатаем установленную температуру
// hundreds = T1/100;                 //определяем сотни
// tens=(T1-hundreds*100)/10;         //определяем десятки
// ones=T1-(hundreds*100+tens*10);    //определяем единицы
// lc.setDigit(0,0,hundreds,false);   //печатаем сотни
// lc.setDigit(0,1,tens,true);         //печатаем десятки с запятой
// lc.setDigit(0,2,ones,false);        //печатаем единицы
// delay (2000);                       //делаем задержку 3 сек
// lc.clearDisplay(0);                 //очищаем экран
  }
 if (!kn_DOWN.read() )
  {
    temperatura_set--;
    delay(300);
    EEPROM_write(1, temperatura_set); //записываем значение температуры в память по адресу 0

    }
    T1 = temperatura_set*10;            //в этом блоке печатаем установленную температуру
 hundreds = T1/100;                 //определяем сотни
 tens=(T1-hundreds*100)/10;        //определяем десятки
 ones=T1-(hundreds*100+tens*10);  //определяем единицы
 lc.setDigit(0,0,hundreds,false);     //печатаем сотни
 lc.setDigit(0,1,tens,true);          //печатаем десятки с запятой
 lc.setDigit(0,2,ones,false);        //печатаем единицы
  delay (500);                    //делаем задержку 
 // lc.clearDisplay(0);             //очищаем экран
    Serial.println(temperatura_set);
}

}
//=====================================================================************
//Модуль опроса датчиков и получения сведений о температуре
//Вызывается 1 раз в секунду
      unsigned long currentMillis1 = millis();
      if(currentMillis1 - previousMillis1 > interval1) {
      previousMillis1 = currentMillis1;  
//Запуск процедуры измерения температуры
  sensors.setWaitForConversion(false);
  sensors.requestTemperatures();
  sensors.setWaitForConversion(true);
//Считывание значения температуры
      sensors.getAddress(tempDeviceAddress, 0);
      temp1=sensors.getTempC(tempDeviceAddress);
  T1= temp1*10;//И печатаем его
  hundreds = T1/100;
  tens=(T1-hundreds*100)/10;
  ones=T1-(hundreds*100+tens*10);
  lc.setDigit(0,0,hundreds,false);
  lc.setDigit(0,1,tens,true); 
  lc.setDigit(0,2,ones,false);
}
    EEPROM_read(1, temperatura_set);//считываем значение температуры
//Serial.println(temperatura_set);
//Проверка условия включения/выключения нагревателей:
if (temp1<temperatura_set&&outhet1Status==LOW){outhet1Status=HIGH; digitalWrite(OUTHET1,HIGH);}
if (temp1>temperatura_set&&outhet1Status==HIGH){outhet1Status=LOW; digitalWrite(OUTHET1,LOW);}
if (temp1<temperatura_set&&outhet2Status==LOW){outhet2Status=HIGH; digitalWrite(OUTHET2,HIGH);}
if (temp1>temperatura_set&&outhet2Status==HIGH){outhet2Status=LOW; digitalWrite(OUTHET2,LOW);} 
   }


//Конец кода
     

 

 

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

самое главное кнопки работают как надо, даже сейчас смотрю на код, некоторые моменты еще не понял, но общее понимание есть, еще раз спасибо!!!!

а это схема в протеусе, если надо:

https://drive.google.com/file/d/0B8XhOtZ_ILJfSEM5UXZsU0NMN0U/view?usp=sh...

https://drive.google.com/file/d/0B8XhOtZ_ILJfQ0x3MjVRLVp3d00/view?usp=sh...

 

Bobrov.Anatoliy
Offline
Зарегистрирован: 29.08.2013

vosara пишет:

А вот алгоритм который предлагает Puhlyaviy, Если я его првильно понял.

Он также как и мой имеет право на существование. Так что выбирайте


//Temp777.ino
#include <Bounce.h>;

#define BUTTON_TEMP 7  //кнопка установки температуры
//#define BUTTON_TIME 6  //кнопка установки ВРЕМЕНИ
#define UP 5          //кнопка увеличения значения
#define DOWN 4        //кнопка уменьшения значения

int kn_c=0;
bool flag_kn_c =0;
bool kn_tim = 0;
int led_C = 13; //светодиод температуры
int led_T = 8; //Светодиод таймера
int temperatura = 50;
int timer = 80;

//создаем объект класса Bounce. Указываем пин, к которому подключена кнопка, и время дребезга в мс.
Bounce kn_tempert = Bounce(BUTTON_TEMP,2); 
//Bounce kn_timer = Bounce(BUTTON_TIME,5); 
Bounce kn_UP = Bounce(UP,5); 
Bounce kn_DOWN = Bounce(DOWN,5); 

void setup() {
  // put your setup code here, to run once:
  pinMode(led_C, OUTPUT);
  pinMode(led_T, OUTPUT);
  pinMode(BUTTON_TEMP, INPUT_PULLUP); 
 // pinMode(BUTTON_TIME, INPUT_PULLUP);
  pinMode(UP, INPUT_PULLUP);
  pinMode(DOWN, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop()
{
kn_tempert.update();
//kn_timer.update();
kn_UP.update();
kn_DOWN.update();

if(!kn_tempert.read() && flag_kn_c==0){
    flag_kn_c=1;
}
if(kn_tempert.read() && flag_kn_c==1){
    if (kn_c >= 5) kn_c = 0;
     kn_c++;
    flag_kn_c = 0;
}
Serial.println(temperatura);

switch (kn_c) {
    case 1:
    digitalWrite(led_C, HIGH);//Обозначаем что вошли в регулировку температуры
 if ( !kn_UP.read() )
  {
  	temperatura++;
    delay(300);
  }
 if (!kn_DOWN.read() )
  {
  	temperatura--;
    delay(300);
  }
      break;
    case 2:
      digitalWrite(led_C, LOW);
      digitalWrite(led_T, HIGH); //Обозначаем что вошли в регулировку таймера
 if ( !kn_UP.read() )
  {
  	timer++;
    delay(300);
  }
 if (!kn_DOWN.read() )
  {
  	timer--;
    delay(300);
  }
      break;
    case 3:
      digitalWrite(led_C, HIGH); //оба горят Обозначаем что вошли в режим записи
      digitalWrite(led_T, HIGH);
      // Здесь проверяем изменили температуру и таймер если да пишем в память
      kn_c = 4;
      break;
      case 4:
      digitalWrite(led_C, LOW); //оба не горят Обозначаем что вышли из режима настройки
      digitalWrite(led_T, LOW);
      break;
  }

}

Класс! Второй алгоритм еще интереснее, и главное, понятнее для меня, (как чайнику) но больше всего меня удивило, что вы умудрились отделить зерна от плевел в этом наборе фраз, которыми сыпет пухлявый, то ли у него манера изьясняться такая, как у моего первого учителя по информатике, то ли он траву забористую курит, по любому Огромное спасибо Вам и Пухлявому, ОН РАБОТАЕТ!!!!!!!!!! УРА!

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

Я вижу в коде Вы при каждом увеличении или уменьшении на единицу, пишете в память. Это не правильно, хотя и работает. Нужно создать временную переменную в которой выставить значение какое нужно и только после этого записать в память. Память имет свой ресурс перезаписи и при интенсивном использовании надолго ее может не хватить.

Bobrov.Anatoliy
Offline
Зарегистрирован: 29.08.2013

vosara пишет:

Я вижу в коде Вы при каждом увеличении или уменьшении на единицу, пишете в память. Это не правильно, хотя и работает. Нужно создать временную переменную в которой выставить значение какое нужно и только после этого записать в память. Память имет свой ресурс перезаписи и при интенсивном использовании надолго ее может не хватить.

Принято, испавляю, а то я переключился на время окрыленный успехом, спасибо за замечание!

Bobrov.Anatoliy
Offline
Зарегистрирован: 29.08.2013

vosara пишет:

Я вижу в коде Вы при каждом увеличении или уменьшении на единицу, пишете в память. Это не правильно, хотя и работает. Нужно создать временную переменную в которой выставить значение какое нужно и только после этого записать в память. Память имет свой ресурс перезаписи и при интенсивном использовании надолго ее может не хватить.

 

Правда, когда прогнал программу в AtmelStudio показало чрезмерную нагрузку на память, делаю переменную

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

Bobrov.Anatoliy пишет:

Класс! Второй алгоритм еще интереснее, и главное, понятнее для меня, (как чайнику) но больше всего меня удивило, что вы умудрились отделить зерна от плевел в этом наборе фраз, которыми сыпет пухлявый, то ли у него манера изьясняться такая, как у моего первого учителя по информатике, то ли он траву забористую курит, по любому Огромное спасибо Вам и Пухлявому, ОН РАБОТАЕТ!!!!!!!!!! УРА!

мдаааа.... серьезная заявка на победу... тоесть дети прекрасно понимают мои обьяснения... а у вас типа проблемы...тоесть вы по уровню развития ниже детей 10-15 летнего возраста?

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

vosara пишет:

Я вижу в коде Вы при каждом увеличении или уменьшении на единицу, пишете в память. Это не правильно, хотя и работает. Нужно создать временную переменную в которой выставить значение какое нужно и только после этого записать в память. Память имет свой ресурс перезаписи и при интенсивном использовании надолго ее может не хватить.

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

vosara
vosara аватар
Offline
Зарегистрирован: 08.02.2014

Про человека который написа 230 строчек кода, который работает, говорить что он не умет думать - по меньшей мере неправильно!!!

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

vosara пишет:

Про человека который написа 230 строчек кода, который работает, говорить что он не умет думать - по меньшей мере неправильно!!!

там вон в соседней ветке есть человек написавший 800 строчек кода!!! и что? он не понимает как это работает и почему... 

типа миллион обезьян с пишушими машинками выдадут Войну и Мир...

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

Puhlyaviy пишет:

там вон в соседней ветке есть человек написавший 800 строчек кода!!! и что? он не понимает как это работает и почему... 

вы

       код

              как считаете?

 - что есть строка?

                              : один  

                                             оператор/переменная

                                                                                       ?

*пойду разверну свой код - хочу знать, насколько я умный.

partizan0180
Offline
Зарегистрирован: 15.12.2015

Привет всем,

Мне немнога интересно есть ли продвиги в етой теме?

Клапауций 123
Offline
Зарегистрирован: 06.12.2015

partizan0180 пишет:

Привет всем,

Мне немнога интересно есть ли продвиги в етой теме?

есть - ты спросил, есть ли подвиги...

partizan0180
Offline
Зарегистрирован: 15.12.2015

Просто интересно
Сам вроде такова задумал . Только на 16х2 LCD.