Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 18.06.2009
Сообщений: 23

Система подсчета посетителей на PIC

04.11.2012, 23:01. Показов 4640. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте!
Хочу создать систему подсчета посетителей по принцыпу действия преривания ик-луча от светодиода.
Система должна считать как вошедшых, так и вишедшых посетителей с помощью двух ик-датчиков - если прирывается сначала 1, а потом 2 - посетитель вошел и наоборот, если 2, а тогда 1 - вышел.

В наличии программатор PicKit 3, поетому желательно сделать на пике.
Но в программировании я новичек и соответственно есть трудности...

Может ктото уже делал чтото подобное и поделится опитом и исходниками...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.11.2012, 23:01
Ответы с готовыми решениями:

Алгоритм подсчета посетителей
есть такая задача. я получаю от пользователя cначало четное число n, и потом прошу чтобы от ввел n записей такого формата + time name ...

Как подключить датчик подсчета посетителей CountMax CM-15 к ПК ?
как подключить и настроить датчик CountMax CM_15

Система отслеживания вопросов посетителей сайта
Ни кому не попадалось такой системки (browser-based) вроде посетитель сайта в форме заполняет свой вопрос к вебмастеру и ему дается ссылка...

12
 Аватар для sasha0192
51 / 51 / 7
Регистрация: 23.01.2012
Сообщений: 449
05.11.2012, 00:39
Да, есть подобное. только простой счетчик на 99 999 импульсов... и только на AVR asm
0
Почетный модератор
 Аватар для Humanoid
11559 / 4353 / 453
Регистрация: 12.06.2008
Сообщений: 12,455
05.11.2012, 09:52
Делал такое в меньших масштабах: использовал готовую конструкцию от старой шариковой мыши и тоже через PIC определял направление движения. Задача совсем простая... единственное, что придётся настраивать - это пороги срабатывания. Надо посмотреть, какие будут значения на фотоэлементе в состоянии закрытого света и открытого. Я тогда на скорую руку просто через резисторы подгонял, что бы в закрытом состоянии было около 0, а в открытом около 5 В... но правильнее это сделать через встроенный компаратор, который есть почти в каждом PICе. Программная часть минимальная... главное - сами светодиоды и датчики поставить.
1
0 / 0 / 0
Регистрация: 18.06.2009
Сообщений: 23
05.11.2012, 18:49  [ТС]
У меня в наличии есть только трехконтактние ИК-приемники со встроенным усилителем и демодулятором (как в телевизорах), если не ошибаюсь они работают на частоте 36 кГц. Может кто пробовал подключать их к микроконтроллеру?
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
05.11.2012, 20:16
...а в чем проблема их подключить? Берете даташит и смотрите маркировку на свои. Также добавляете ИК светодиод и модулируете 36 килогерцами, хоть с отдельного генератора, хоть с того же МК.
Миниатюры
Система подсчета посетителей на PIC  
Изображения
 
1
97 / 92 / 0
Регистрация: 24.04.2010
Сообщений: 275
09.11.2012, 22:49
Цитата Сообщение от Konan Посмотреть сообщение
Здраствуйте!
Хочу создать систему подсчета посетителей по принцыпу действия преривания ик-луча от светодиода.
Система должна считать как вошедшых, так и вишедшых посетителей с помощью двух ик-датчиков - если прирывается сначала 1, а потом 2 - посетитель вошел и наоборот, если 2, а тогда 1 - вышел.

В наличии программатор PicKit 3, поетому желательно сделать на пике.
Но в программировании я новичек и соответственно есть трудности...

Может ктото уже делал чтото подобное и поделится опитом и исходниками...
Как будет отображаться данные счетчика? LCD или семисегментные LED?
Можно данные передавать на комп по 433.9 частоте, только придется програмку на винде делать.
Каким компилятором пользуетесь для пика? Или мплабом?

Добавлено через 7 минут
Знаете про протеус? Пользуетесь?

Добавлено через 11 минут
В плане кодинга и монтажа и вывода инфы лучше на двухстрочном лсд сделать, например
вход - 23
выход - 22
И кнопку сброса обнуления данных нужно поставить.

А вообще это комерческий проэкт, т.к.спрос на него есть.
0
 Аватар для sasha0192
51 / 51 / 7
Регистрация: 23.01.2012
Сообщений: 449
09.11.2012, 23:03
Почему именно PIC ?
0
 Аватар для raxper
10237 / 6615 / 498
Регистрация: 28.12.2010
Сообщений: 21,154
Записей в блоге: 1
09.11.2012, 23:21
"Почему именно PIC ?"
В наличии программатор PicKit 3, поетому желательно сделать на пике.
0
0 / 0 / 0
Регистрация: 18.06.2009
Сообщений: 23
11.11.2012, 14:34  [ТС]
Отображение - 2-строчный LCD
С протеусом к сожалению не знаком(((
Промышленние варианти от 100$, поетому и хочу сделать сам)))
0
97 / 92 / 0
Регистрация: 24.04.2010
Сообщений: 275
11.11.2012, 16:25
Контролер какой ПИК?

Там главное корпус подходящий подобрать. Чтобы на кустарщину не смахивал.
0
0 / 0 / 0
Регистрация: 18.06.2009
Сообщений: 23
11.11.2012, 16:43  [ТС]
Купил парочку pic16f628
А с етими датчиками...как там на микроконтролере сделать генератор 36 кГц? на языке с)))

Пробую делать все в MPLab, компилятор HI-TECH
0
97 / 92 / 0
Регистрация: 24.04.2010
Сообщений: 275
11.11.2012, 17:02
Цитата Сообщение от Konan Посмотреть сообщение
А с етими датчиками...как там на микроконтролере сделать генератор 36 кГц? на языке с)))
Подумай сам как, написать алгоритм генератора для начала.

А я пока на 18F2520 накидаю сам счетчик, уже начал, в микросях.

Добавлено через 5 минут
Да и скачай программу Proteus, есть версия 7.9 в сети.
1
97 / 92 / 0
Регистрация: 24.04.2010
Сообщений: 275
11.11.2012, 18:23
Вот накидал скелет проэкта, компилятор mikroC PRO for PIC. Хороший компилятор для начинающих.
При нажатии на кнопки инкрементируется счетчики.

Для подсчета посетителей нужно переделать для инкрементирования счетчиков при последовательном нажатии и отпускании двух кнопок.
На 18 пике написал, т.к. мануал его под у меня рукой был.

Как работать с компиляторо есть статья
Рюмик Микроконтролеры PIC 10 шагов.
Ну и в протеусе отладка.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
//--------------------Глобальные переменные-------------------------------------
 
volatile unsigned short oldstate_in, oldstate_out;                              //флаг срабатывания фотодиодов
volatile unsigned short client_in, client_out;                                  //кол-во людей
 
// LCD module connections
  sbit LCD_RS at RB2_bit;
  sbit LCD_EN at RB3_bit;
  sbit LCD_D4 at RB4_bit;
  sbit LCD_D5 at RB5_bit;
  sbit LCD_D6 at RB6_bit;
  sbit LCD_D7 at RB7_bit;
 
  sbit LCD_RS_Direction at TRISB2_bit;
  sbit LCD_EN_Direction at TRISB3_bit;
  sbit LCD_D4_Direction at TRISB4_bit;
  sbit LCD_D5_Direction at TRISB5_bit;
  sbit LCD_D6_Direction at TRISB6_bit;
  sbit LCD_D7_Direction at TRISB7_bit;
// End LCD module connections
 
 
//---------------------------Главная функция------------------------------------
void main()
{
  TRISB=0b00000011;                                                             //0 и 1 пин портА на вход, остальное на выход
  TRISA=0b00001111;
  INTCON2.F7 = 1;                                                               //отключение подтягивающих резисторов на портВ
  TRISC=0b11111111;                                                             //
  UART1_Init(9600);                                                             //Инициализация UART module на 9600 bps
  Delay_ms(100);                                                                //Ожидаие пока UART module стабилизируется
  INTCON.F7 = 0;                                                                //запретить все прерывания
 
  UART1_Write_Text("Start\n");                                                  //Индикация работы Usart
 
  ADCON1 = 0x0F;                                                                //выводы PORTA цифровые
  CMCON  = 0x07;
  
  client_in = 0;
  client_out = 0;
 
  Lcd_Init();                                                                   // Initialize LCD
 
  Lcd_Cmd(_LCD_CLEAR);                                                          // Clear display
  Lcd_Cmd(_LCD_CURSOR_OFF);                                                     // Cursor off
  Lcd_Out(1,1,"RUSSO_TURISTO");                                                 // Write text in first row
  Lcd_Out(2,4,"COUNTER");                                                       // Write text in second row
  Delay_ms(2000);
  
  Lcd_Cmd(_LCD_CLEAR);                                                          // Clear display
  Lcd_Cmd(_LCD_CURSOR_OFF);                                                     // Cursor off
  Lcd_Out(1,1,"IN");                                                            // Write text in first row
  Lcd_Out(2,1,"OUT");
 
  while (1)
   {
      if (Button(&PORTA, 0, 10, 1)) oldstate_in = 1;
      if (oldstate_in && Button(&PORTA, 0, 10, 0))
      {
      client_in ++;
      Lcd_Chr(1,5,client_in/10+0x30);
      Lcd_Chr(1,6,client_in%10+0x30);
      oldstate_in = 0;
      }
      if (Button(&PORTA, 1, 10, 1)) oldstate_out = 1;
      if (oldstate_out && Button(&PORTA, 1, 10, 0))
      {
      client_out ++;
      Lcd_Chr(2,5,client_out/10+0x30);
      Lcd_Chr(2,6,client_out%10+0x30);
      oldstate_out = 0;
      }
      if (PORTA.F2 == 0)
      {
      client_in = 0;
      client_out = 0;
      Lcd_Cmd(_LCD_CLEAR);
      Lcd_Cmd(_LCD_CURSOR_OFF);
      Lcd_Out(1,1,"IN   0  ");
      Lcd_Out(2,1,"OUT  0  ");
      }
 
 
   }                                                                            //конец основного бесконечного цикла
}                                                                               //конец главной функции
Миниатюры
Система подсчета посетителей на PIC  
Вложения
Тип файла: rar counter_klients.rar (86.2 Кб, 27 просмотров)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.11.2012, 18:23
Помогаю со студенческими работами здесь

Система учёта посетителей фитнес-центра
Ведение справочников: Упражнения, Тренеры, Посетители, Программы тренировок, Посещаемость по абонементу. Функции: ведение...

Определите общее количество посетителей между днем, когда посетителей было меньше всего
На Всемирной выставке научно-технических достижений велась статистика посещений. Определите общее количество посетителей между днем, когда...

Система подсчета
Привет всем! Совершенно забыл основы программирования, пока увлекся систематикой других возможностей Unity и C# Нужна помощь в...

Система подсчета
Добрый день. Подключил базу данных: "Access", создал две формы- "Материалы", "Заказы". Вывел в форме "Материалы" данные в...

Система подсчета голосов на избирательной участке
Есть такая задача, разработать автоматизированную систему, в данном случае для подсчета голосов, но не знаю даже с чего начать(((( хотелось...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru