Перейти к содержанию

sergo57

Members
  • Постов

    10
  • Зарегистрирован

  • Посещение

Весь контент sergo57

  1. Извините,не понял смысла в прочерках.В 70-х нам ещё лампы преподавали...Теперь понял.Благодарю!!!
  2. Если бы я смог сам разобраться,я бы никого не беспокоил бы....
  3. Значит подключение получается,как на картинке... Остаётся вопрос. Подключаем напряжения постоянно, или согласно графика?...В этом источнике,похоже, постоянно....
  4. Иксом этот, с позволения сказать "крестик", и является в данном конкретном случае...Но речь ведь не об этом....
  5. На языке C знак умножения "*" .... lcd_dat(byte/100000+0x30); lcd_dat((byte/10000)%10+0x30); lcd_dat((byte/1000)%10+0x30); ...................................................................... Так вернее, извините ... VIN(IO) GPIO1 - не подключен. Благодарю! Буду разбираться.....
  6. //===================== ОСНОВНАЯ ПРОГРАММА ============================== int main(void) { DDRB=0b00000000; PORTB=0b00000000; DDRC=0b00000000; PORTC=0b00000000; DDRD=0b11110011; PORTD=0b00000000; //инициализация I2C, скорость - 400 bps twi_init(400); lcd_init(); // инициализация ЖКИ (4 бит, 16x2) lcd_com(0x0C); // делаем курсор невидимым //i2c_init(); _delay_ms(1); lcd_string(0x80, " GP2Y0E03 "); // Выводим строку на LCD _delay_ms(950); // выдержка для чтения lcd_string(0x80, " "); // стираем _delay_ms(100); //----------- ф-ция возвращает значение дистанции ---------------------- int8_t _ReadTemp(void) { int8_t MSByte; uint8_t LSByte; twi_start(); twi_write(R_WRITE); twi_write(0x00); //pointer byte (0x00 - Temp) twi_start(); twi_write(R_READ); MSByte = twi_read(1); //ACK LSByte = twi_read(0); //NACK twi_stop(); if((LSByte>>5)>3) MSByte++; //округление до целых return MSByte; //Возврат значения дистанции } while(1) { byte1 = R_ReadTemp(); // читаем из памяти согласно алгоритму для данного типа _delay_ms(200); byte2 = R_ReadTemp(); // читаем из памяти согласно алгоритму для данного типа _delay_ms(200); byte = byte1; //чтение младших 8 битов результата byte+=((int) byte2 << 8); // плюс старшие биты _delay_ms(250); // lcd_com(0xC0); lcd_dat(byte/100000+0x30); lcd_dat((byte/100000)%10+0x30); lcd_dat((byte/1000)%10+0x30); lcd_dat((byte/100)%10+0x30); lcd_dat((byte/10)%10+0x30); lcd_dat(byte%10+0x30); } } //Как-то так...
  7. Проблема в написании кода.https://global.sharp/products/device/lineup/data/pdf/datasheet/gp2y0e02_03_appl_e.pdf Тут вроде всё подробно разжёвано...Если правильно понял, нужно описать процесс чтения, как на картинке...Жаль, что Proteus нет такого дальномера. По крайней мере у меня. Поэтому мучаю в железе...Пока безрезультатно...
  8. Помогите,пожалуйста, подключить датчик расстояния по I2C к микроконтроллеру AVR на С.
×
×
  • Создать...