Jump to content
2a420

нужен скетч для ардуино

Recommended Posts

К каждому датчику провода должны идти в виде свитой пары. Это так?

Если не поможет, попробуй подключить по трёх проводной схеме закоротив резистор 100 Ом.

Share this post


Link to post
Share on other sites
2 часа назад, mazzi сказал:

К каждому датчику провода должны идти в виде свитой пары. Это так?

Если не поможет, попробуй подключить по трёх проводной схеме закоротив резистор 100 Ом.

да к датчикам по витой паре

что с чем коротить то.

Share this post


Link to post
Share on other sites

Финальные результаты тестирования литиевых батареек FANSO при нормальных условиях

Перед разработчиком устройства, в котором предполагается использование батарейки, всегда стоит задача выбора того или иного бренда. Конечно, наиболее объективный результат по качеству можно получить при реальном тестировании в режиме работы самого устройства. Для того чтобы у разработчиков была некоторая информация о реальных значениях основных параметров ЛХИТ, инженеры компании КОМПЭЛ решили провести серию из трех тестов. Первый тест на постоянный разряд в нормальных климатических условиях, начатый в апреле 2019 г., мы завершили.

Узнать финальный результат тестирования

Закоротить резистор 100 Ом. Или вместо резистора запаять перемычку.

 

Share this post


Link to post
Share on other sites

К каждому датчику провода должны идти отдельным свитым жгутом. Это так?

Share this post


Link to post
Share on other sites
                     

Видеокурс Работаем с микроконтроллерами STM32G0. Впервые на русском языке.

В цикле видеокурсов по работе с STM32G0 от компании STMicroelectronics показаны архитектура, периферия (особенности процессорного ядра, режимов пониженного питания, векторов прерываний, DMA и мультиплексора DMA, схемы тактирования и сброса, и.т.д.) и даны практические примеры. Материал дает наглядное понимание того, как начать работу на новых микроконтроллерах STM32G0

Подробнее

Нам нужно добиться, что бы датчики температуры работали.

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

Share this post


Link to post
Share on other sites

я же уже подключал датчики к плате с скетчем из примеров провода при этом были сантиметров по 10 и в мониторе были текущие показания с датчиков.

Share this post


Link to post
Share on other sites

А тут все еще интересно, жизнь кипит :)

Может легче будет в режиме Голоса или скайпа, быстрее решиться вопрос.

Share this post


Link to post
Share on other sites

Может.но я не использую этот способ.Здесь то почему нельзя?Жизнь хоть какая то шевелится)))

Share this post


Link to post
Share on other sites

Получается, что с короткими проводами работает, а с длинными нет? Я правильно понял?

Share this post


Link to post
Share on other sites

провода те же. скетчи разные.

Edited by 2a420

Share this post


Link to post
Share on other sites

Я достал такую же ардуино, попробую у себя, потом отпишусь.

Share this post


Link to post
Share on other sites

328-я имеет фьюз CKDIV8, запрограммированный производителем. Проверьте, возможно из-за него тайминги "ушли".

Share this post


Link to post
Share on other sites

Я собрал у себя , всё заработало. Попробовал с паразитным питанием и с нормальным. Только температуру считает в 10 раз больше, там опечатка, вместо (float)raw / 16.0; нужно набрать (float)raw / 160.0;

После исправления меряет чётко.

Share this post


Link to post
Share on other sites

так может корректный скетч дадите я тоже попробую?

Share this post


Link to post
Share on other sites
#include <MsTimer2.h>
#include <OneWire.h>
//#define POWER_MODE  1 // режим питания, 0 - внешнее, 1 - паразитное
OneWire sensDs1 (2);  // датчик подключен к выводу 2
OneWire sensDs2 (3);  // датчик подключен к выводу 3
OneWire sensDs3 (4);  // датчик подключен к выводу 4

byte bufData1[12];  // буфер данных
byte adr1[8];
float temperature1;  // измеренная 
byte bufData2[12];  // буфер данных
byte adr2[8];
float temperature2;  // измеренная 
byte bufData3[12];  // буфер данных
byte adr3[8];
float temperature3;  // измеренная 

float tOpen=30.0, tClose=20.0;

byte nTask; // номер задачи
byte door1, door2, door3; // 0 - unknown, 1 - open, 2 - close
byte Pump, oldPump;
int16_t  debounce;
int16_t  raw;
byte present = 0, i;

// --------------------------------------------------------------------

// --------------------------------------------------------------------
void timerInterrupt() {
   if(debounce) {debounce--; digitalWrite(12,HIGH); }
   else digitalWrite(12,LOW);
   Pump=digitalRead(11); 
   if(oldPump!=Pump) {
      oldPump=Pump; debounce=1000; 
   }
}
// --------------------------------------------------------------------
void getDigits() {
unsigned int a1,a2;
   a1=analogRead(2);
   a2=analogRead(3);
   if(a1>500 && a2<100) door1=1;
   else if(a1<100 && a2>500) door1=2;
   else door1=0;

   a1=analogRead(4);
   a2=analogRead(5);
   if(a1>500 && a2<100) door2=1;
   else if(a1<100 && a2>500) door2=2;
   else door2=0;

   a1=analogRead(6);
   a2=analogRead(7);
   if(a1>500 && a2<100) door3=1;
   else if(a1<100 && a2>500) door3=2;
   else door3=0;
}
// --------------------------------------------------------------------
void handlerDoors() {
   if     (door1!=2 && temperature1<tClose) { digitalWrite( 5, LOW);  digitalWrite( 6, HIGH);}
   else if(door1!=1 && temperature1>tOpen)  { digitalWrite( 5, HIGH); digitalWrite( 6, LOW);}
   if     (door2!=2 && temperature2<tClose) { digitalWrite( 7, LOW);  digitalWrite( 8, HIGH);}
   else if(door2!=1 && temperature2>tOpen)  { digitalWrite( 7, HIGH); digitalWrite( 8, LOW);}
   if     (door3!=2 && temperature3<tClose) { digitalWrite( 9, LOW);  digitalWrite(10, HIGH);}
   else if(door3!=1 && temperature3>tOpen)  { digitalWrite( 9, HIGH); digitalWrite(10, LOW);}
}
// --------------------------------------------------------------------
void taskHandler(byte task) {
  switch(task) {
    case 0:
       if ( !sensDs1.search(adr1)) {
         sensDs1.reset_search();
         delay(250);
       }
       sensDs1.reset();
       sensDs1.select(adr1);
       sensDs1.write(0x44, 1);        // start conversion, with parasite power on at the end
       delay(1000);     // maybe 750ms is enough, maybe not
       present = sensDs1.reset();
       sensDs1.select(adr1);    
       sensDs1.write(0xBE);         // Read Scratchpad
       for ( i = 0; i < 9; i++) {           // we need 9 bytes
          bufData1[i] = sensDs1.read();
       }
       raw = (bufData1[1] << 8) | bufData1[0];
       raw = raw << 3; // 9 bit resolution default
       if (bufData1[7] == 0x10) {
      // "count remain" gives full 12 bit resolution
         raw = (raw & 0xFFF0) + 12 - bufData1[6];
       }
       temperature1 = (float)raw / 160.0;
       Serial.print("  Temperature1= ");
       Serial.print(temperature1);
       Serial.print(" Celsius, \n");
    break;
    case 1:
       if ( !sensDs2.search(adr2)) {
         sensDs2.reset_search();
         delay(250);
       }
       sensDs2.reset();
       sensDs2.select(adr2);
       sensDs2.write(0x44, 1);        // start conversion, with parasite power on at the end
       delay(1000);     // maybe 750ms is enough, maybe not
       present = sensDs2.reset();
       sensDs2.select(adr2);    
       sensDs2.write(0xBE);         // Read Scratchpad
       for ( i = 0; i < 9; i++) {           // we need 9 bytes
          bufData2[i] = sensDs2.read();
       }
       raw = (bufData2[1] << 8) | bufData2[0];
       raw = raw << 3; // 9 bit resolution default
       if (bufData2[7] == 0x10) {
      // "count remain" gives full 12 bit resolution
         raw = (raw & 0xFFF0) + 12 - bufData2[6];
       }
       temperature2 = (float)raw / 160.0;
       Serial.print("  Temperature2= ");
       Serial.print(temperature2);
       Serial.print(" Celsius, \n");
    break;
    case 2:
       if ( !sensDs3.search(adr3)) {
         sensDs3.reset_search();
         delay(250);
       }
       sensDs3.reset();
       sensDs3.select(adr3);
       sensDs3.write(0x44, 1);        // start conversion, with parasite power on at the end
       delay(1000);     // maybe 750ms is enough, maybe not
       present = sensDs3.reset();
       sensDs3.select(adr3);    
       sensDs3.write(0xBE);         // Read Scratchpad
       for ( i = 0; i < 9; i++) {           // we need 9 bytes
          bufData3[i] = sensDs3.read();
       }
       raw = (bufData3[1] << 8) | bufData3[0];
       raw = raw << 3; // 9 bit resolution default
       if (bufData3[7] == 0x10) {
      // "count remain" gives full 12 bit resolution
         raw = (raw & 0xFFF0) + 12 - bufData3[6];
       }
       temperature3 = (float)raw / 160.0;
       Serial.print("  Temperature3= ");
       Serial.print(temperature3);
       Serial.print(" Celsius, \n");
    break;
  }
}
void setup() {
  nTask=0;
  pinMode( 5, OUTPUT); digitalWrite( 5, LOW);
  pinMode( 6, OUTPUT); digitalWrite( 6, LOW);
  pinMode( 7, OUTPUT); digitalWrite( 7, LOW);
  pinMode( 8, OUTPUT); digitalWrite( 8, LOW);
  pinMode( 9, OUTPUT); digitalWrite( 9, LOW);
  pinMode(10, OUTPUT); digitalWrite(10, LOW);
  pinMode(12, OUTPUT); digitalWrite(12, LOW);  // насос

  pinMode(11, INPUT);  digitalWrite(11, HIGH); // сигнал от насоса
  Pump=digitalRead(11); oldPump=Pump; debounce=0;
  MsTimer2::set(2, timerInterrupt); // задаем период прерывания по таймеру 2 мс 
  MsTimer2::start();               // разрешаем прерывание по таймеру
  Serial.begin(9600); // инициализируем порт, скорость 9600  
}

void loop() {
  taskHandler(nTask++);
  if(nTask>2) {
    nTask=0;  
    getDigits();
    handlerDoors();
  }
}

Пожалуйста. У меня нули показывает, только когда датчик отключаю.

Share this post


Link to post
Share on other sites

А я бы с измерением температуры поступал бы как здесь

И меньше бы памяти съедалось у Ардуины на библиотеки onewire

Share this post


Link to post
Share on other sites

Какой смысл экономить память если задача и так маленькая?

Share this post


Link to post
Share on other sites

залил результат такой :

до этого стоял скетч проверочный на экранчике показывало температуру с датчика

скомпилировал без ошибок

залил тоже ошибок не показало

экран светится в верхней строке черные прямоугольники.

Edited by 2a420
ошибка

Share this post


Link to post
Share on other sites

Контраст может покрутить. Либо данные не приходят. Мод с подключением напутано или обрыв где

Share this post


Link to post
Share on other sites
13 часа назад, 2a420 сказал:

экран светится в верхней строке черные прямоугольники.

О каком экране речь? Скрин или фото можешь показать?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • Тоже в качестве бреда.  Увеличить резисторы R25,R27. Ом так до 15-18
    • Ну чтож схемы не бывает на данное устройство? Или может все же есть у кого?
    • подскажите по какой причине в РС цепочке задающего генератор обратнохода 3845 рекомендуют отказываться от керамических конденсаторов ?
    • ИМХО это от того, что тот или те, кто замутил гандизм в России, планировали быстрый успех путем привлечения в движение разочаровавшегося советского человека, который по сути глубоко чужд гандизму. 
    • А можно точно: 1 Какой осцилограф (модель) 2 Фото дефекта (прямо с поломанного устройства) как попросили выше несколько периодов. Схема ваша?
    • Шутка если что Как мы жили при СССР Пенопласт делали из молочной пены. Можно было детей кормить. Сила гравитации была слабее процентов на 80. Люди на дом запрыгивали с разбегу. От водки не пьянели. В яслях детям вместо кефира порой давали, а дети только лучше становились, маму слушались и про Ленина просили рассказать. Человек жил в среднем 150–190 лет. Болезней не существовало, кроме трудовых мозолей. Если на улице споткнешься и упадешь — люди подбегали, деньги в карман засовывали, в губы целовали, предлагали выпить, породниться. Зайцы и куропатки сразу на сковороду залетали. Пивом можно было болезни лечить. Отваришь раков, возьмешь из ведра, плеснешь на него жигулевского — а он раз и оклемался, и побежал как ни в чем не бывало. Хлеб покупаешь — тебе еще доплачивают. К реке страшно подойти было: налимы в котелок прыгали. Дед рассказывал: люди ночью просыпались от счастливого доброго смеха. Утром все обливались ледяной водой из ведра. Генеральный секретарь ЦК КПСС каждого самолично целовал на ночь. Иному и сказку рассказывал. Члены Политбюро приходили во сне к одиноким женщинам, через 4,5 месяцев те рожали красноармейцев, по три штуки за раз, так и выстояли! Хлеб был калорийный, как энергетический батончик. Съел краюшку — и сыт неделю, потому и не переедали. Срок беременности составлял 4.5 месяца. Дети рождались по 12–15 килограмм с белокурыми волосами и ясными голубыми глазами и волевыми умными лицами — сразу на производство просились. Вода в Волге была сладкая как патока. А Енисей состоял из тёмного пива. Зимою было минус триста, а все румяные ходили. А всё потому что градусы были толще, и абсолютный ноль — абсолютнее. Ягоды росли на опушке с кота размером. Коты были с собаку, собака с корову, а корова как цех, а в цеху мужики в шахматы играли по методике Ботвинника — конём мат ставили с первого хода! После школы всех насильно в институты брали, а оттуда сразу ведущими инженерами на заводы устраивали, по 500 рублёв платили, а копейка стоила 200! При советской власти хер в сугроб сувал, вокруг на семь метров до земли снег вытаявал. Когда в СССР еще не было космических кораблей комсомольцы сами отправлялись в открытый космос. На Эльбрус поднимутся, ну и по-дороге в космос забегут. Бензин был не то что сейчас. Хороший, наваристый был! На заводе заправят один раз — так и ездишь всю пятилетку... Ночь. Метель. Глухая окраина города. На пустую АЗС въезжает такси. Усталый водитель открывает бензобак, поворачивается, чтобы взять пистолет, и внезапно чувствует, как кто-то хлопает его по спине. Он испуганно вздрагивает, медленно оборачивается, и видит, что у него за спиной стоит надувной снеговик, и бьётся головой ему под лопатку. - Твою же мать! - в сердцах матерится водитель. - Откуда тебя принесло?! Снеговик молчит, дураковато улыбаясь и пьяно раскачиваясь на ветру. Водитель берёт его за шкирку, и идёт к кассе. - До полного, и бабу свою заберите! А то улетит! - говорит он в тёмное окошко. - Какую ещё бабу? - сонно доносится изнутри. - Надувную! - показывает таксист на стоящего рядом снеговика. - Это не наша баба! - отвечает оператор. - Ну не ваша значит не ваша. - говорит водитель, и заправив машину уезжает. Снеговик, покачиваясь на ветру, остаётся стоять в печальном одиночестве посреди пустой заправки. * * * К заправке снеговик действительно не имел никакого отношения. Полчаса назад его сдуло с козырька школы, куда накануне нерадивый захвоз закрепил его тяп-ляп. Целый день снеговик стоял, помахивая варежкой школьникам, а ночью, когда поднялась метель, сорвался с козырька и полетел. И приземлился на соседней автозаправке, напугав своим внезапным появлением полуночного таксиста. Когда такси уехало, всеми брошенный снеговик ещё немного постоял у кассы, словно в ожидании сдачи, потом очередной порыв ветра подхватил его, поднял, и выбросил на шоссе, прямо под колёса проезжавшего мимо легкового автомобиля. Снеговика ударило бампером, потом лобовым стеклом, он взлетел высоко к небу, и скрылся с глаз в снежной замети. Девушка за рулём от испуга вдавила педаль тормоза в пол, машину занесло, несколько раз крутануло волчком на обледенелой трассе, и в конце концов вынесло в придорожные кусты. Без особого, к счастью, ущерба как для водителя, так и для автомобиля. Несколько секунд девушка сидела, приходя в себя, потом взяла телефон, вышла из машины, и отправилась назад, к месту происшествия. По дороге она набрала короткий номер, и когда оператор ответил, сказала: - Здравствуйте! Я только что сбила человека! Потом назвала своё имя и координаты места происшествия. - Ждите! - сказал оператор, и повесил трубку. Девушка сунула телефон в карман, и пошла по обочине в поисках пострадавшего. Но сколько бы она ни вглядывалась в пустое шоссе, в заснеженную обочину, ей так и не удалось обнаружить даже намёка на сбитого пешехода. Не удалось это сделать ни подъехавшим вскоре гаишникам, ни врачам скорой помощи, тоже прибывшим по вызову. Более того, тщательный осмотр практически новенького автомобиля не обнаружил на нём ни малейших следов удара. - Вы уверены? - спросили в конце концов гаишники у незадачливого водителя. - Думаете я шучу? - Ну, мало ли. Может вам показалось? Задремали за рулём. - Я не задремала! Я просто не понимаю, откуда она взялась! Она выскочила прямо перед машиной! - сказала девушка и заплакала. То ли от стресса, то ли оттого, что ей не верят. - Успокойтесь! Это что, была женщина? Девушка всхлипнула, подумала, и сказала. - Я не уверена. Мне так показалось. Она была в такой, знаете, белой шубе. Гаишники меж тем помогли вытолкать машину из кювета, составили протокол, и вручили девушке. - И что теперь? - спросила та. Гаишники пожали плечами. - Ну, поскольку второго участника происшествия обнаружить не удалось, то с нашей стороны к вам претензий нет. Разбирайтесь со страховой. И будте пожалуйста внимательнее на дороге! Уехала невостребованная скорая. Уехала машина ГАИ. Последней, крадучись, скрылся из вида автомобиль с девушкой за рулём. И снова всё погрузилось в снежное небытие. А снеговик, незадачливый и неопознанный виновник происшествия, ещё какое-то время полетал по окрестностям, повинуясь порывам ветра, и наконец приземлился во дворе какого-то частного дома. * * * Утром, когда метель улеглась, и выглянуло морозное солнышко, на крыльцо дома выкатился крепко укутанный карапуз лет четырёх. Накануне до поздней ночи они с отцом катали снеговика. Снеговик получился огромный, почти с папу ростом. Они сделали ему красивый нос из настоящей морковки, которую выпросили у ворчащей мамы, а на голову надели настоящее старое ведро. И теперь малышу не терпелось посмотреть, не случилось ли со снеговиком что нибудь за ночь. Карапуз скатился с крыльца, пару минут постоял, тараща широко распахнутые глаза во двор, а потом с криком "Мама! Мама!!!" бросился обратно. - Мама! Мама!!! - кричал он, вбегая в прихожую. - Наш снеговик женился!!! - Женился!? - рассеянно переспросила мама с кухни. - На ком женился? - На ком, на ком! - возмутился малыш. - На снеговихе естественно! - На какой ещё снеговихе? Что ты выдумываешь, сынок? - стараясь скрыть раздражение ответила мама. - Что я выдумываю?! Иди сама посмотри! Обреченно вздохнув, мама накинула куртку и вышла вслед за малышом во двор. Зрелище, которое открылось её глазам, было достойно умиления. К крепкому снежному боку слепленного вчера снеговика нежно прижималась почти точная его копия. Только поменьше ростом, и надувная. Да в отличие от настоящего снеговика, лицо которого имело суровое мужское выражение, копия счастливо лыбилась, как невеста на свадебной фотографии. - Ты утром, когда уезжал, ничего странного во дворе не заметил? - спросила мама, позвонив папе на работу. - Да вроде нет... - подумав, ответил папа. - А что случилось? - Я вам говорила вчера, что лепить нужно двух снеговиков?! Говорила, что одному снеговику будет скучно?! - Ну, говорила. И что? - Почему вы меня никогда не слушаете?! - Господи, да что случилось-то?! - Этот ваш снеговик ночью приволок себе откуда-то надувную бабу!!!
×
×
  • Create New...