Ви не увійшли.
Доброго вечора, маю 2 таких ( https://arduino.ua/prod2467-lazernii-datchik-rasstoyaniya-vl53l0x-v2 ) лазерних дальноміра, перевіряв адрес датчиків на шині i2c їхній адрес 0x29 для обох, як програмно змінити і де глянути чи можна змінити взагалі, дякую
Остання редакція Бодя96 (2018-11-02 04:09:13)
Неактивний
Что, и даже джампера нет для смены адреса... На схеме модуля тактовый сигнал данных проходит через транзистор Q1A, перережьте ему питание затвора и сами подавайте туда плюс, когда надо. Вот такой вот самодельный CS будет.
Оппа, в даташите написано, что адрес можно менять: Programmable I2C address.
Короче, после включения управляющий МК должен зашатдаунить все модули, кроме одного и прописать адрес модуля, затем проделать это с остальными, т.е. нужно использовать провод к XSHUT каждого модуля и даже демультиплексор, если свободных ножек маловато у управляющего МК. Далее берём и читаем в Гугле документацию, например adafruit-vl53l0x-micro-lidar-distance-sensor-breakout.pdf:
To set the new address you can do it one of two ways. During initialization, instead of calling lox.begin(), call
lox.begin(0x30) to set the address to 0x30. Or you can, later, call lox.setAddress(0x30) at any time.
Спасибі за відповідь, хотілося б уточнити, в мене ще використовується драйвер L298N та сервопривід, в них немає виходу XSHUT, їм також вручну треба вписувати адресу?
Неактивний
Краще уважно прочитати https://www.st.com/content/ccc/resource … 279088.pdf, шоб не помилитись з висновками.
Неактивний
Всім привіт, знайшов статтю, але через недостатнє розуміння англійської не можу повністю зрозуміти суть пунктів 2.1, 2.2. І чи можна зашити програму через USB з 5 В, потім вставити 12В в роз'єм PowerJack і тоді лише дістати USB щоб програма не збилась
https://www.st.com/content/ccc/resource/technical/document/application_note/group0/0e/0a/96/1b/82/19/4f/c2/DM00280486/files/DM00280486.pdf/jcr:content/translations/en.DM00280486.pdf
і вот знайшов код щоб змінити регістр з перевіркою, але без дії з попереднього посилання і з живленням лише 5В він змінював лише адресу 2 регістру
#include <Wire.h>
#include <VL53L0X.h>
VL53L0X sensor;
VL53L0X sensor2;
void setup()
{
pinMode(5, OUTPUT);
pinMode(4, OUTPUT);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
delay(500);
Wire.begin();
Serial.begin (9600);
pinMode(4, INPUT);
delay(150);
Serial.println("00");
sensor.init(true);
Serial.println("01");
delay(100);
sensor.setAddress((uint8_t)22);
Serial.println("02");
pinMode(5, INPUT);
delay(150);
sensor2.init(true);
Serial.println("03");
delay(100);
sensor2.setAddress((uint8_t)25);
Serial.println("04");
Serial.println("addresses set");
}
void loop()
{
Serial.println ("I2C scanner. Scanning ...");
byte count = 0;
for (byte i = 1; i < 120; i++)
{
Wire.beginTransmission (i);
if (Wire.endTransmission () == 0)
{
Serial.print ("Found address: ");
Serial.print (i, DEC);
Serial.print (" (0x");
Serial.print (i, HEX);
Serial.println (")");
count++;
delay (1); // maybe unneeded?
} // end of good response
} // end of for loop
Serial.println ("Done.");
Serial.print ("Found ");
Serial.print (count, DEC);
Serial.println (" device(s).");
delay(3000);
}
ось звідси взяв програму https://github.com/pololu/vl53l0x-arduino/issues/1
Остання редакція Бодя96 (2018-10-31 22:34:03)
Неактивний