Вопрос мастерам, или как убить ардуинку.

Sikorskiy
Offline
Зарегистрирован: 25.04.2016
Есть задача, опрашивать несколько ардуино по I2C с целью вывести полученное на дисплей.
Рабочий код прикладываю, подсоединял по мануалу и резисторы на 1,47кОм на 5v подтянул.
Вопрос в следующем.
Почему то поле некоторого времени слейв перестает определятся. 
Скан видит любую перефирию I2C кроме ардуинки, кроме того прошить ее уже не получается. 
Ошибка при попытке прошить пропавшую ардуинку.
avrdude: warning: cannot set sck period. please check for usbasp firmware update.
avrdude: error: programm enable: target doesn't answer. 
avrdude: initialization failed, rc=-1
Double check connections and try again, or use -F to override this check.
 
Код мастера

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x26,16,2);
#include <Wire.h>
char co = 0 ;

void setup() 
  {
 
  Wire.begin();        // join i2c bus (address optional for master)
  lcd.init();
  lcd.backlight();
  Serial.begin(9600);  
  }
 
void loop() 
  {
     
     Wire.requestFrom(0x10, 4,true);
     lcd.setCursor(0,0);
     while (Wire.available()) 
        { 
          co = Wire.read(); 
          Serial.print(co);         
          lcd.print(co);   
        }
        delay(200);
    
   
     Serial.print(" ");
     
     Wire.requestFrom(0x10, 7,true);    // request 6 bytes from slave device #8
     lcd.setCursor(4,0);
     while (Wire.available()) 
        { 
          co = Wire.read(); 
          Serial.print(co);         
          lcd.print(co);   
        }
   
  Serial.print("\n");
  delay(200);
  lcd.clear();
}

Код слейва

#include <Wire.h>

byte stat = true;  

char c[4] = {'N','O',' ',' '};
float x = 322.345;
void setup() {
  Wire.begin(0x10);
   pinMode(13, OUTPUT);
  Serial.begin(9600);
  Wire.onRequest(requestEvent); 
}

void loop() {
  digitalWrite(13, LOW);
  delay(100);
    
}

void requestEvent() {
   if (stat == true)
    {
      
      Wire.write(c,sizeof c);
      stat = false;
    }else
      {
        char outstr[7];
        dtostrf(x,7, 3, outstr);
        Wire.write(outstr,sizeof outstr);
        stat = true;
       }
   digitalWrite(13, HIGH);   
        
        
    
  
}

 

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Sikorskiy пишет:
подсоединял по мануалу

Схему в студию! И фото что и как соединено заодно, потому как выражение "резисторы на 1,47кОм" наводит на мысль, что там (в Вашем соединении) может быть всё, что угодно.

Sikorskiy пишет:

резисторы на 1,47кОм

Где Вы их взяли такие?

И да, кстати, ответ на главный вопрос

Sikorskiy пишет:
как убить ардуинку

Маслину в пузо из нагана,
Макитра набок, и хана.

Sikorskiy
Offline
Зарегистрирован: 25.04.2016

резисторы 7.5 мм 5% 

а вообще пробовал разные и 10кОм и 4.7 дело явно не в них.

фотать не на что, там ничего нет кроме двух ардуин 3 проводов как на схеме. 

 

https://www.arduino.cc/en/Tutorial/MasterReader

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Sikorskiy пишет:

резисторы 7.5 мм 5% 

фотать не на что, там ничего нет кроме двух ардуин 3 проводов как на схеме.

1. "не на что", мобильник  в унитаз уронили?

2. где резисторы? Что такое 7.5 мм?  надпись 1.47К не несет (по кр. мере, для меня) позитивного смысла. Поэтому давайте уж... доставайте мобильник из унитаза, сушите и фотографируйте Ваше творение.

Sikorskiy
Offline
Зарегистрирован: 25.04.2016

резистор типоразмера 7.5 мм 

мультиметр выставленный в положении 20К Ω показывает 1,47, чего не понятно что резистор номиналом 1470 ом?

Фото резистора ниже, более чем уверен, если знаете что такое резистор то видели такие.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Sikorskiy пишет:

мультиметр выставленный в положении 20К Ω показывает 1,47, чего не понятно что резистор номиналом 1470 ом?

Чего непонятно, что резистор номиналом 1,5КОм?

В общем, из доверия Вы вышли :)))

На нарисованной Вами схеме никаких резисторов не вовсе. Так что давайте:

1. Правильную схему

2. Фото, чтобы видно было что и как

Sikorskiy
Offline
Зарегистрирован: 25.04.2016

просушил

Sikorskiy
Offline
Зарегистрирован: 25.04.2016

вот как на схеме фоточка, результат тот же.

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

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

2. На фото резисторы в 62 Ом и 2200 Ом.

3. Номинала 1470 НЕ БЫВАЕТ

4. на фото схемы - номиналы в 910 Ом, что яно не соответсвует требованиям.

5. на воторй вообще нет резисторов.

 

--------------

6. Может Евгений еще и будет с хамлом и мудлом возиться, я - пас.

Sikorskiy
Offline
Зарегистрирован: 25.04.2016

Чего бомбануло то?

1. Вы*ёбываться и не думал.

2. фото приерепил для того чтобы пояснить что такое 7.5 мм

3. Погрешность 5% у резистора сказывается на реальном сопротивлении.

4. Каким требованиям? В спецификации точно не указанно нужны они или нет, написано только что чем больше тем стабильней и медленней. Я пробовал разные номиналы, подбирал мультиметром максимально одинаковые.

5. Фото без резисторов, для ЕвгенийП. Просил как на схеме.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Т.е. Вы питаете одну ардуину от 3.3В другой? Что-то мне это не нравится.

Sikorskiy
Offline
Зарегистрирован: 25.04.2016

Хамишь почему то ты.

А по делу ни слова. 

Sikorskiy
Offline
Зарегистрирован: 25.04.2016

питаю от 5v

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Попробуйте её (про-мини) нормально кормить 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Sikorskiy пишет:

питаю от 5v

А на фото, вроде от 3,3? Хотя там не видно ни хрена.

Модно всё-таки номальное фото и нормальную схему.

Sikorskiy
Offline
Зарегистрирован: 25.04.2016

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

А UNO от USB же питается, правильно? Тогда ничего не могу сказать, вроде, всё нормально на первый взгляд.

Sikorskiy
Offline
Зарегистрирован: 25.04.2016

Sikorskiy
Offline
Зарегистрирован: 25.04.2016

Пробовал от USB и от блока питания 9V. 

Спасибо и на этом.