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

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

Members
  • Постов

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

  • Посещение

Весь контент Андрей Протаскин

  1. Нет, вы мне отправьте схему которая в видеоуроке который я прислал!
  2. Здравствуйте! Кто-нибудь шарит в Arduino? Если кто и шарит, то пусть он мне нарисует схему где инфракрасный дальномер с 3 контактами, фоторезистор и светодиод и 2 резистора и отправьте мне! как здесь
  3. Здравствуйте! Вы не подскажете, где найти в Proteus потенциометр с тремя ножками?
  4. Здравствуйте! Я тут написал код //Atmega8 //Укажем частоту #define F_CPU 8000000 #include <avr/io.h> #include <util/delay.h> //Инициализируем библиотеку для работы с дисплеем #include "n5110.h" #include <stdlib.h> //Предварительные настройки void presets(){ //Инициализируем дисплей Lcd_init(); //Настройки АЦП //ADCSRA ADCSRA |= (1<<ADEN) //Задействовать АЦП | (1<<ADPS2) | (1<<ADPS2) | (1<<ADPS2) ; //Делитель 128 = 64 кГц //ADMUX ADMUX |= (1<<REFS1)|(1<<REFS0); //Опорное напряжение 2.56 В внутреннее } int readADC(unsigned int ch){ unsigned char set_admux = ADMUX; set_admux &= ~((1<<MUX3) | (1<<MUX2) | (1<<MUX1) | (1<<MUX0)); switch(ch) { case 1: set_admux |= ((0<<MUX3) | (0<<MUX2) | (0<<MUX1) | (1<<MUX0));break; case 2: set_admux |= ((0<<MUX3) | (0<<MUX2) | (1<<MUX1) | (0<<MUX0));break; default:break; } ADMUX = set_admux; int tmp = 0; for (int i=0;i<40;i++) { ADCSRA |= (1<<ADSC); //Запуск преобразования while ((ADCSRA &(1<<ADSC))); //Ожидание окончания преобразования tmp += ADC; //tmp = tmp + ADC; } return tmp/40; } int main(void) { presets(); while (1) { Lcd_clear(); //Вольты Lcd_printf(0,0,FONT_1X,((readADC(0)*2.56*(30/2.56))/1023), 1); //Амперы Lcd_printf(0,1,FONT_1X,((readADC(1)*2.56*(3/2.56))/1023), 1); //Градусы Lcd_printf(0,2,FONT_1X,(((readADC(2)*2.56*100*(3.73/2.56))/1023)-273.15), 0); Lcd_update(); _delay_ms(200); } } Собрал схему в Proteus , а АЦП (Вольтметр, амперметр и термометр) показывают 13.2, 1.3, -497, а должно показывать 23.4, 2.0, 95 Почему так? GccApplication7.atsln n5110.c n5110.h GccApplication7.hex New Project.pdsprj
  5. Кстати! У меня же Proteus есть, и я в нем микросхемы и собираю. Я вообще хорошо владею компьютером!
  6. @KRAB краситься не пробовали? Ха-ха-ха! Это у меня такая шутка!
  7. @ARV так здесь же индивидуальный подход, только то что мне надо, где только микросхемы учат собирать!
  8. Здравствуйте! А как выглядит микросхема материнской платы на условном графическом обозначении?
  9. Здравствуйте! Скажите мне пожалуйста, где взять в Proteus такой же подстроечный резистор как на скриншоте показанный красными стрелками? https://yadi.sk/i/f-k8lhfhiHYyRg
  10. Пробовал - всё равно в Proteus преобразователь показывает 0.0. Вот код //Atmega8 //Укажем частоту #define F_CPU 8000000 #include <avr/io.h> #include <util/delay.h> //Инициализируем библиотеку для работы с дисплеем #include "n5110.h" #include <stdlib.h> //Предварительные настройки void presets(){ //Инициализируем дисплей Lcd_init(); //Настройки АЦП //ADCSRA ADCSRA |= (1<<ADEN) //Задействовать АЦП | (1<<ADPS2) | (1<<ADPS2) | (1<<ADPS2) ; //Делитель 128 = 64 кГц //ADMUX ADMUX |= (1<<REFS1)|(1<<REFS0); //Опорное напряжение 2.56 В внутреннее //| (0<<MUX3) | (0<<MUX2) | (0<<MUX1) | (1<<MUX0) //Выбор вывода } int readADC(unsigned int ch){ unsigned char set_admux = ADMUX; set_admux &= ~((1<<MUX3) | (0<<MUX2) | (1<<MUX1) | (0<<MUX0)); switch(ch) { case 1: set_admux |= ((0<<MUX3) | (0<<MUX2) | (0<<MUX1) | (1<<MUX0));break; default:break; } ADMUX = set_admux ;_delay_ms(10); int tmp = 0; for (int i=0;i<40;i++) { ADCSRA |= (1<<ADSC); //Запуск преобразования while ((ADCSRA &(1<<ADSC))); //Ожидание окончания преобразования ADMUX&=0xF0; ADC +=tmp; //tmp = tmp + ADC; } return tmp/40; } int main(void) { presets(); while (1) { Lcd_clear(); Lcd_printf(0,0,FONT_1X,((readADC(0)*2.56*(30/2.56))/1023), 1); Lcd_printf(0,1,FONT_1X,((readADC(1)*0.02935)), 1); Lcd_update(); _delay_ms(200); } } GccApplication7.atsln n5110.c n5110.h New Project.pdsprj
  11. Здравствуйте! Почему когда я написал вот такой код //Atmega8 //Укажем частоту #define F_CPU 8000000 #include <avr/io.h> #include <util/delay.h> //Инициализируем библиотеку для работы с дисплеем #include "n5110.h" #include <stdlib.h> //Предварительные настройки void presets(){ //Инициализируем дисплей Lcd_init(); //Настройки АЦП //ADCSRA ADCSRA |= (1<<ADEN) //Задействовать АЦП | (1<<ADPS2) | (1<<ADPS2) | (1<<ADPS2) ; //Делитель 128 = 64 кГц //ADMUX ADMUX |= (1<<REFS1)|(1<<REFS0); //Опорное напряжение 2.56 В внутреннее //| (0<<MUX3) | (0<<MUX2) | (0<<MUX1) | (1<<MUX0) //Выбор вывода } int readADC(unsigned int ch){ unsigned char set_admux = ADMUX; set_admux &= ~((1<<MUX3) | (0<<MUX2) | (1<<MUX1) | (0<<MUX0)); switch(ch) { case 1: set_admux |= ((0<<MUX3) | (0<<MUX2) | (0<<MUX1) | (1<<MUX0));break; default:break; } ADMUX = set_admux ;_delay_ms(10); int tmp = 0; for (int i=0;i<40;i++) { ADCSRA |= (1<<ADSC); //Запуск преобразования while ((ADCSRA &(1<<ADSC))); //Ожидание окончания преобразования ADC +=tmp; //tmp = tmp + ADC; } return tmp/40; } int main(void) { presets(); while (1) { Lcd_clear(); Lcd_printf(0,0,FONT_1X,((readADC(0)*2.56*(30/2.56))/1023), 1); Lcd_printf(0,1,FONT_1X,((readADC(1)*0.02935)), 1); Lcd_update(); _delay_ms(200); } } набросал схему в Proteus - АЦП показывает 0.0, почему так? n5110.c n5110.h New Project.pdsprj GccApplication7.atsln
  12. Здравствуйте! Подскажите мне пожалуйста, как собрать микросхему АЦП в Proteus? Я тут написал код //Atmega8 //Укажем частоту #define F_CPU 8000000 #include <avr/io.h> #include <util/delay.h> //Инициализируем библиотеку для работы с дисплеем #include "n5110.h" #include <stdlib.h> //Предварительные настройки void presets(){ //Инициализируем дисплей Lcd_init(); //Настройки АЦП //ADCSRA ADCSRA |= (1<<ADEN) //Задействовать АЦП | (1<<ADPS2) | (1<<ADPS2) | (1<<ADPS2) ; //Делитель 128 = 64 кГц //ADMUX ADMUX |= (1<<REFS1)|(1<<REFS0) //Опорное напряжение 2.56 В внутреннее | (0<<MUX3) | (0<<MUX2) | (0<<MUX1) | (1<<MUX0); //Выбор вывода } int readADC(){ ADCSRA |= (1<<ADCSRA); //Запуск преобразования while ((ADCSRA &(1<<ADSC))); //Ожидание окончания преобразования return ADC; } int main(void) { presets(); while (1) { Lcd_clear(); char buff[5]; itoa(readADC(), buff, 10); Lcd_print(0,1, FONT_1X, (unsigned char*)buff); Lcd_update(); _delay_ms(200); } } набросал схему и почему-то у меня показывает 0 New Project.pdsprj GccApplication7.hex n5110.c n5110.h
  13. Здравствуйте! Я просто спросить, почему программу для микронтроллеров надо писать с точностью до символов, и скелет программы, конфигурацию, и функции надо писать на английском языке, а не на русском, и в конце программы ставится точка с запятой?
  14. @минздрав домофон как устроен и какие там электрические цепи!
  15. Здравствуйте! Как устроена схема старого телефона, который с диском номеронабирателя?
  16. @ARV так получается в микроконтроллере Atmega8 там химические вещества, да ещё несколько пластин?!
  17. Здравствуйте! А как выглядит микросхема микроконтроллера Atmega8 изнутри?
  18. @ARV Да! Я понял! Оказывается в видеоуроке про LCD дисплей рассказывается всё неправильно! Там использовалась нестандартная библиотека в Proteus, а надо использовать стандартную, и код написали неправильно! Понаберут непрофессионалов типа меня, и тут хрен поймешь!
  19. @ARV вот. Нет, код в программе не соответствует схеме LCD_5110.zip lcd_5110.pdsprj n5110.c n5110.h GccApplication6.hex
  20. @ARV Я не знаю, что делать в LCD дисплее! Я всё перепробовал - ничего не получается!
  21. @ARV Во-первых - да, а во-вторых грешно смеяться над больными людьми! Я аутист, у меня проблемы с корой головного мозга, я на домашнем обучении, не люблю большое скопление людей! @ARV я просто хочу, чтобы вы мне разжевали мне информацию по LCD дисплею
×
×
  • Создать...