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

Опрос Клавиатуры 3х4


miksergei

Рекомендуемые сообщения

Всем доброе время суток! Только начинаю писать программы для МК.

Цель устройства - кодовый замок, но сложность заключается в опросе клавиатура из 12 кнопок, т.е. матрица 4х3. В последствии нужно преобразовать номер кнопки в двоичный код этой кнопки. Схемку уже начертил, нужно написать прошивку. Принцип сам понял, но перед тем как писать программу хотел бы посмотреть другие идеи и советы. Возможно кто-нибудь уже делал подобное. Если не трудно пришлите куски программ, схемы, идеи по теме.

Заранее всем благодарен.

post-12842-1213961792_thumb.jpg

Ссылка на комментарий
Поделиться на другие сайты

  • 4 месяца спустя...

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

Можно повесит кнопки на вход АЦП, применив делитель из сопротивлений

Так можно кучу кнопок повесить - при одном задействованном выводе..

пардон, не заметил

у тани2313 нет ацп :(

такой вопрос, а куда этот код с кнопок предполагается дальше подавать?

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

все очень просто! У тебя 4 строки и 3 столбца Строки инициализируеш как выходы а столбцы как входы потом в подпрограмме опроса клавиш выводиш единицу в первую строку и проверяеш поочереди столбцы, потом выводиш единицу во вторую строку и снова проверяеш и тд. по окончанию опроса делаеш задержку допустим на 0.1 сек для защиты от дребезга контактов и выводиш код клавишы из регистра в порт В. Причем после опроса каждой клавиши если нажата - занести код клавиши в регистр!

Вот пример:

;Подпрограмма опроса клавиатуры 3*5

;Опрашываем первый столбец

Klava:

ldi temp,0b11110111 ;код столбца 1

out PortB,temp ;

sbis PinB,0 ;Проверяем клавишу 1

ldi sklav,1 ;Если нажата сохраняем код клавишы в регистре состояния клавиатуры

sbis PinB,1 ;Проверяем клавишу 6

ldi sklav,6 ;Если нажата сохраняем код клавишы в регистре состояния клавиатуры

sbis PinB,2 ;Проверяем клавишу 11

ldi sklav,11 ;Если нажата сохраняем код клавишы в регистре состояния клавиатуры

;Опрашиваем второй столбец

ldi temp,0b11101111 ;код столбца 2

out PortB,temp ;

sbis PinB,0 ;Проверяем клавишу 2

ldi sklav,2 ;Если нажата сохраняем код клавишы в регистре состояния клавиатуры

sbis PinB,1 ;Проверяем клавишу 7

ldi sklav,7 ;Если нажата сохраняем код клавишы в регистре состояния клавиатуры

sbis PinB,2 ;Проверяем клавишу 12

ldi sklav,12 ;Если нажата сохраняем код клавишы в регистре состояния клавиатуры

;Опрашиваем третий столбец

ldi temp,0b11011111 ;код столбца 3

out PortB,temp ;

sbis PinB,0 ;Проверяем клавишу 3

ldi sklav,3 ;Если нажата сохраняем код клавишы в регистре состояния клавиатуры

sbis PinB,1 ;Проверяем клавишу 8

ldi sklav,8 ;Если нажата сохраняем код клавишы в регистре состояния клавиатуры

sbis PinB,2 ;Проверяем клавишу 13

ldi sklav,13 ;Если нажата сохраняем код клавишы в регистре состояния клавиатуры

;Опрашиваем четвертый столбец

ldi temp,0b10111111 ;код столбца 4

out PortB,temp ;

sbis PinB,0 ;Проверяем клавишу 4

ldi sklav,4 ;Если нажата сохраняем код клавишы в регистре состояния клавиатуры

sbis PinB,1 ;Проверяем клавишу 9

ldi sklav,9 ;Если нажата сохраняем код клавишы в регистре состояния клавиатуры

sbis PinB,2 ;Проверяем клавишу 14

ldi sklav,14 ;Если нажата сохраняем код клавишы в регистре состояния клавиатуры

;Опрашиваем пятый столбец

ldi temp,0b01111111 ;код столбца 5

out PortB,temp ;

sbis PinB,0 ;Проверяем клавишу 5

ldi sklav,5 ;Если нажата сохраняем код клавишы в регистре состояния клавиатуры

sbis PinB,1 ;Проверяем клавишу 10

ldi sklav,10 ;Если нажата сохраняем код клавишы в регистре состояния клавиатуры

sbis PinB,2 ;Проверяем клавишу 15

ldi sklav,15 ;Если нажата сохраняем код клавишы в регистре состояния клавиатуры

rcall drebezg ;Вызов подпрограммы защиты от дребезга

ret ;Выход из падпрограммы

проверял етот пример в протеусе - в нем работает ;) но на железке непроверял

Забанен за рекламу

Ссылка на комментарий
Поделиться на другие сайты

Hongfa для различных применений в Компэл. Большой выбор в наличии!

Компания HONGFA - это не только крупнейший в мире производитель электромеханических реле, но также производитель конденсаторов, вакуумных прерывателей, трансформаторов и низковольтного коммутационного оборудования. На складе КОМПЭЛ регулярно поддерживаются около 100 самых популярных позиций электромеханических реле. Реле Hongfa могут заместить многие изделия производства недоступных брендов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Тренды и лучшие решения для разработки зарядных станций в России

К 2029 году в России прогнозируется увеличение числа зарядных станций до 40 000. При этом отечественный рынок электротранспорта имеет климатические, потребительские и географические особенности. Для успешной разработки и построения инфраструктуры станций заряда в России идеальным вариантом является использование решений и электронных компонентов китайских производителей – лидеров индустрии электротранспорта и возобновляемой энергетики, которые уже представлены в КОМПЭЛ. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Да с цыклами размер программы уменьшится но тогда я не совсем понимаю как узнать какая клавиша была нажата

можеш привести пример кода на асемблере :rolleyes:

Забанен за рекламу

Ссылка на комментарий
Поделиться на другие сайты

Секреты депассивации литиевых батареек FANSO EVE Energy

Самыми лучшими параметрами по энергоемкости, сроку хранения, температурному диапазону и номинальному напряжению обладают батарейки литий-тионилхлоридной электрохимической системы. Но при длительном хранении происходит процесс пассивации. Разберем в чем плюсы и минусы, как можно ее избежать или уменьшить последствия и как проводить депассивацию батареек на примере продукции и рекомендаций компании FANSO EVE Energy. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Да хоть многократное нажатие!!!! Всё зависит от того на что и как вы будете использовать данные.. Я лично всегда писал приментельно к нужной схеме... Так что у меня всё было заточено на железо... Главное сначала составте алгоритм на бумаге а потом переведите его на програму. Научитель использовать подпрограмы - в разы упрощает програмирование... Имеется ввиду розделять подпрограму на подпрограмы...

Ссылка на комментарий
Поделиться на другие сайты

Ребята, давайте базовые вопросы обсуждать в специальных темах МК для начинающих или Алгоритмы.

Теперь по теме клавиатуры.

В свое время была книжка "Проектирование ццифровых устройств на однокристальных микроконтроллерах"

В отличии от многих современных там вся работа сначала разжевывалась на алгоритмах, и только потом приводился код.

Так-что книга будет полезна всем новичкам, а не только тем, кто изучает 51 ядро.

Конкретно клавиатура там описана начиная со 156 страницы.

Как советовать, так все чатлане ...

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

<OFFTOP>

Migray

Большое спасибо, что разшариваешь литературу, но это не оч. информативно;)

</OFFTOP>

Как по мне то неплохо реализовывать клавиатуру так:

Инициализация:

1. Пины линии, например, X делаем выходами;

2. Пины линии, например, Y делаем входами;

3. На линии X выводим лог. 1;

4. На линиях Y включаем подтягивающие резисторы;

5. Инициализируем один из таймеров, в последтвии в нем будем обрабатывать события клавиатуры;

6. Разрешаем прерывания по переполнению таймера.

Работа:

1. По прерыванию считываем состояние порта Y;

2. Записываем текущее значение во временную переменную;

3а. Сравниваем полученное значение и предыдущее, если значения не совпадают: обнуляем счетчик повторов и записываем новое значение в переменную хранящую предыдущее значение;

3б. Сравниваем полученное значение и предыдущее, если значения совпадают - инкрементируем значение счетчика повторений. Если счетчик повторений совпадает с доверительным значение, выставляем соответствующий флаг и обнуляем счетчик;

4. Устанавливаем лог. 1 на текущей ноге линии X и лог. 0 на следующей;

5. Выходим из прерывания;

Это упрощенный алгоритм, но его вполне достаточно чтоб реализовать работу любой матричной клавиатуры.

Ссылка на комментарий
Поделиться на другие сайты

Инициализация:

1. Пины линии, например, X делаем выходами;

2. Пины линии, например, Y делаем входами;

3. На линии X выводим лог. 1;

4. На линиях Y включаем подтягивающие резисторы;

5. Инициализируем один из таймеров, в последтвии в нем будем обрабатывать события клавиатуры;

6. Разрешаем прерывания по переполнению таймера.

Работа:

1. По прерыванию считываем состояние порта Y;

Которое всегда будет одинаковым, т.к. X все = "1", а Y подтянуты :(

По прерыванию мы запускаем цикл, число повторений = числу линий порта X.

В цикле:

1. Сбрасываем соответствующую линию порта в "0"

2. Читаем состояние порта Y

3. Записываем (и в случае необходимости сдвигаем) информацию в переменную. Переменная - часть массива.

4. Возвращаем соответствующую линию порта в "1"

5. Переходим к следующему шагу цикла.

По окончании цикла у нас есть состояние всех клавиш, дальше его можно сравнивать с предыдущим (антидребезг), можно проверить длительность нажатия клавиши (счетчик повторений в этом поможет).

При длительном нажатии можно и автоповтор включить :)

Автоповтор конечно в книжке не описан, но там ничего сложного нет, если подумать.

Изменено пользователем Migray

Как советовать, так все чатлане ...

Ссылка на комментарий
Поделиться на другие сайты

Которое всегда будет одинаковым, т.к. X все = "1", а Y подтянуты :(

...

"4. Устанавливаем лог. 1 на текущей ноге линии X и лог. 0 на следующей;"

Которое будет изменяться;)

Ссылка на комментарий
Поделиться на другие сайты

Т.е. состояние первой линии тебе не интересно?

Она-же не прочитается.

Сбрасываем, читаем, выставляем обратно.

Все в одном цикле, тогда все гарантировано работает.

Алгоритм должен составляться так, что-бы каждый программный блок был функционально законченным.

Как советовать, так все чатлане ...

Ссылка на комментарий
Поделиться на другие сайты

Т.е. состояние первой линии тебе не интересно?

Она-же не прочитается.

Интересно! И оно прочитается;) Так как там реализован цикл например: X = 0x0F (значение после инициализации), 0x0E, 0x0D ... 0x07

Например:

...
#define GOOD_COUNT 50

typedef struct {
U8 NewKey;
U16 KeyCode;
} TKeyBoard;

...
TKeyBoard gKeyBoard

#pragma vector = TIMER0_OVF_vect
__interrupt void TIMER0_OVF_ISR(void) 
{
static U8 LineX = 0x01;
U8 LineY = 0;
static U16 LastKeyCode = 0;
static U8 KeyCounter;

if (gKeyBoard.NewKey)
	return;

LineX <<= 1;
if (!LineX)
	LineX = 0x01;

PORTA = ~LineX;

LineY = PORTC;

if (LineY = 0xFF)
	return;

gKeyBoard.KeyCode = (LineX << 8) + LineY;

if (LastKeyCode == gKeyBoard.KeyCode)
{
	KeyCounter++;
	if (KeyCounter < GOOD_COUNT)
		return;
	else
	{
		KeyCounter = 0;
		gKeyBoard.NewKey = 1;
	}
}
else
{
	LastKeyCode = gKeyBoard.KeyCode;
	KeyCounter = 0;
}
} 

...
void InitMCU(void)
{
DDRA = 0xFF;
PORTA = 0xFF;
PORTC = 0xFF;

// Инициализация таймеров
TCCR0 = 0x01;	   // Запуск таймера 0 без пред. делителя
TIMSK = (1<<TOIE0); // Разрешим прерывание от переполнения счетчика TMR0
}

...
void main(void)
{
while(1)
{
	if (gKeyBoard.NewKey)
	{
		switch (gKeyBoard.KeyCode)
		{
			case KB_LED_ON:
				func_LED_ON();
				gKeyBoard.NewKey = 0;
				break;
			case KB_LED_OFF:
				func_LED_OFF();
				gKeyBoard.NewKey = 0;
				break;
			default: break;
		}
	}
}
}

Этот пример написан на скорую руку, но должен работать! Краткое описание:

Матрица 8*8, порт А сигнальный, порт С приемный. Есть глобальная переменная хранящая состояние клавиатуры. В основном цикле программы обслуживаются события, чтение состояния клавиатуры происходит по прерыванию. Таким образом, что можно запрограммировать комманду на нажатие на две кнопки одного ряда, что иногда очень удобно!

Сбрасываем, читаем, выставляем обратно.

Все в одном цикле, тогда все гарантировано работает.

Т.е. клавиатуру вы опрашиваете не в прерывание а в основном цикле? :o

Алгоритм должен составляться так, что-бы каждый программный блок был функционально законченным.

Только давайте, мы не будем друг друга учить как правильно коды писать для МК;) Как насчет ассемблерных вставок? Или вы их не используете для повышения производительности?

Изменено пользователем ss85
Ссылка на комментарий
Поделиться на другие сайты

1. Сбрасываем соответствующую линию порта в "0"

......

4. Возвращаем соответствующую линию порта в "1"

А если вместо этого вывести на все линии порта "0" и

1. Переключаем соответствующую линию порта (DDRn) как выход

.....

4. Возвращаем соответствующую линию порта в режим входа.

Тогда можно будет не ставить защитные диоды на линии

Изменено пользователем YurkaM
Ссылка на комментарий
Поделиться на другие сайты

Т.е. состояние первой линии тебе не интересно?

Она-же не прочитается.

Интересно! И оно прочитается;) Так как там реализован цикл например: X = 0x0F (значение после инициализации), 0x0E, 0x0D ... 0x07

Было заявлено "3. На линии X выводим лог. 1;" соответственно начальное значение - все линии неактивны.

При последующих циклах естественно все прочитается, но не в первый раз.

Именно так можно понять из описания алгоритма.

Понятно, что грамотный программист так в рабочей программе не напишет, но ведь спрашивает новичек, значит и формулировать надо однозначно.

Сбрасываем, читаем, выставляем обратно.

Все в одном цикле, тогда все гарантировано работает.

Т.е. клавиатуру вы опрашиваете не в прерывание а в основном цикле? :o

Нет конечно. Еще раз читаем:

По прерыванию мы запускаем цикл, число повторений = числу линий порта X.

В цикле:

...

Цикл сканирования клавиатуры запускается в прерывании по таймеру.

Хотя в тех МК, которые я использую, я могу среагировать и на прерывание клавиатуры, при необходимости.

Но таймер - универсальнее, есть у всех.

Только давайте, мы не будем друг друга учить как правильно коды писать для МК;) Как насчет ассемблерных вставок? Или вы их не используете для повышения производительности?
В 1995 году нормальных Си-компиляторов было не достать, приходилось ес-но все писать на АСМе.

Сейчас на АСМе только критические блоки.

Ну и оптимизация в IAR неплохая, иногда даже отличная, ее почти не приходится подправлять.

Как советовать, так все чатлане ...

Ссылка на комментарий
Поделиться на другие сайты

...

Понятно, что грамотный программист так в рабочей программе не напишет, но ведь спрашивает новичек, значит и формулировать надо однозначно.

...

Да, возможно я сильно упростил описание алгоритма, но ведь никто не мешает попросить более детальных объяснений!

...

Хотя в тех МК, которые я использую, я могу среагировать и на прерывание клавиатуры, при необходимости.

Но таймер - универсальнее, есть у всех.

...

Таймер универсальнее, спору нет!

...

Сейчас на АСМе только критические блоки.

Ну и оптимизация в IAR неплохая, иногда даже отличная, ее почти не приходится подправлять.

Да, на сегодня IAR и WinAVR очень хорошо компилируют.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
  • Сообщения

    • Если проверял в родной схеме - там динамическая индикация на 4 разряда и прямое падение напряжения и прямой постоянный ток будет в 4 раза больше: Напряжение (0,772 - 0,785)*4=3,088-3,14 Вольт. Ток (1,5-2,1)*4=6-8,4 мА. Если добавить защитные паузы на переключение разрядов, то реальное напряжение и ток светодиода будет на 3-5% больше.
    • Собрал ГИР на одном транзисторе больше игрушка получилась потомучто частоту ей то не как не узнать,пробовал с помощью приемника узнать но там 4 от нее гармоник так и ещё там и не узнать 465 кГц эти не как (узнал что схема приемника на 465 ПЧ),но оно что-то та и измеряет Лутше соберу генератор-пробник на 465 кГц,с помощью эго и полность настрою приемник,а котушки наверное прийдеться оставить те из антенного феррита  И правда что у такого конденсатора минимум 60 пкФ?! Вот фото это КПЕ:  
    • Исправляюсь... Здесь видно, что все банки имеют связь с контроллером, а именно этот, по середине, не имеет. Шурик куплен осенью, зимой время от времени работал, слегка. Готовился к весенней стройке. Практически новые аккумы. На всякий случай заказал 18650, высокотоковый, правда несколько большей емкости. На 1500 не нашел
    • Устройство работает штатно. Только без этой обратной информации. Без этой информации на пульте оператор не видит попали в мишень или нет.  Дело в том что пульты управление остались старые. Под прежнюю версию подъёмников.  А подъёмники новые. Только почему то не предусмотрена та самая информация. Хотя на плате имеются свободные места под детали для вывода обратной информации.  Но они не установлены. Значит и прошивка тоже урезана.Плата скорее всего изготовлена в Китае. Оборудование Российское . Но детали все на плате зарубежные.  Завтра буду на работе скину фотки плат нового и старого образца 
    • Доброго времени суток. Понадобился переменный резистор чтобы кое-что измерить, но чтобы не крутить ручку и не записывать цифры вручную т.к. это долго. В общем закончилось микроконтроллером, картой памяти и файлом с таблицей измеренных результатов. Идея банально проста: не полностью открытый транзистор имеет какое-то сопротивление перехода. Оно как-то зависит от того насколько он открыт. У микроконтроллеров есть PWM выводы, на которые можно выдать цифру от 0 до 255 и на выходе будет напряжение от 0 до 5 вольт (точнее, напряжения питания), соответственно. Этот вывод можно подавать на базу транзистора, таким образом регулируя сопротивление его перехода. Что-то подобное я видел в схемах регулирования громкости разных независимых каналов, когда подтягивая запаралеленные базы транзисторов к земле меняли громкость, взял тогда на заметку если мне нужно будет программное управление громкостью усилителя. Чтобы не вдаваться в подробности что там происходит с точки зрения физики, с учетом того что идеальных приборов не бывает и характеристики всех плавают от партии к партии - проще для конкретного элемента провести калибровку. Подопытный - BU103AD (400V, 2A - что наковырял из сгоревшей платы, искал что-то с более менее приличным током). Написал простую программу - ввожу значение в последовательный порт, МК получает число и устанавливает значение вывода. На оси X значение от 0 до 255, на оси Y сопротивление между коллектором и эмиттером. Обнаруживается первая хрень - при переключении мультиметра со значения 2000 Ом на значение 20К Ом резкий скачок. Там не видно, но на переключении с 200 на 2000 он тоже есть. У кого есть умные мысли почему так происходит - прошу ими поделиться, а пока я прихожу к выводу что надо обойтись без перещёлкиваний и далее измерять на одном и том же делении (то есть одной и той же линейкой!). Дальше следующий шаг - надо придумать какой функцией это можно сглаживать. Тут вообще что-то не очевидное если не вникать в физику процесса, то ли логарифм, то ли обратная пропорциональность, но если отложить то же сопротивление в омах от величины 1/PWM - обнаруживается простая линейная зависимость. На графике интервал сопротивлений ограничен 0 - 2000 (до скачка). Как добавлять линию тренда на график в Microsoft Excel, надеюсь, все знают. Уравнение на диаграмме. Если надо наоборот получить величину PWM которую следует установить чтобы получить сопротивление заданной величины, то надо из уравнения выразить X, либо перестроить график поменяв оси местами. На краях возможна какая-то нелинейность, потому при таком сглаживании надо понимать в каком интервале формула будет работать. Могу сказать что при PWM > 250 происходит какая-то ерунда (возможно насыщение на базе, опять же не хочу вникать в эти подробности которые, как я считаю, для решения задачи можно и не знать). Делать много картинок мне определенно лень, но поверьте на слово что если избавиться от скачка на 200 омах и посчитать тренд для отрезка PWM от 230 (соответствующего сопротивлению 164 Ом) до 251 (конец линейной части графика) величина достоверности R2 равна единице. Поскольку задачу я решал специфическую - изучить поведение источника тока (солнечной панели) при разных токах начиная от 0.1 А (мизер) и до 2А (предел для выбранного транзистора), то большие сопротивления мне были даром не нужны, достаточно было покрыть интервал от 0 до 100 либо 200 Ом (в этом интервале также не актуальна проблема с непонятно откуда взявшимся скачком при переключении мультиметра). Беру и соединяю мощный резистор 100 Ом параллельно переходу коллектор-эмиттер выбранного транзистора. Схема по идее должна вести себя как параллельное соединение резисторов, один из которых фиксированного номинала а второй переменный. Провожу калибровку - снова изменяю сопротивление схемы при разном значении PWM (с шагом 5, где надо уточнить с шагом 2 или 1), для первого раза нормально а так шаг можно значительно увеличить. 3_R100-200Ohm_paral.bmp Получается вот такой график с соответствующими прямыми - для подключения транзистора к резисторам 100 и 200 Ом соответственно. На краях интервала (250-255 и 0-5) возможна какая-то ерунда потому эти значения лучше исключить с графика до построения линии тренда и получения окончательной формулы.   Я не публикую тут никаких готовых результатов, это только концепция получения достаточно дешевого программно управляемого переменного резистора (аналога цифрового потенциометра или резистивного цифро-аналогового преобразователя) на любой интервал сопротивлений и для любого тока (на который найдете транзистор) + основные идеи как получить формулы зависимости сопротивления от PWM и наоборот - значения PWM которое надо задать чтобы получить сопротивление величины R. Прошу начинать критиковать. Что я не учел? Где подводные камни?
    • Ну почему? Все зависит от региона и мощи которую планируете снять. В том же Крыму, где солнесная погода круглый год, все будет норм, в какой нибудь Сахаре панели если не расплавятся то покажут шикарный результат, а вот в том же Владивостоке, который южнее чем Сочи, от панелей пользы мало, там летних дней с мая по сентябрь всего шт 30 наберется, остальное дожди/тайфуны.  Деньги. Прикупить 3 панели для зарядки ноута, недорого. Но обеспечить дом круглосуточно хотя бы 3кВт, уже дорого. 100Вт*40шт≈ 400 000 руб, плюс акумы 220v / 3v * 10 000руб ≈ 700 000руб, плюс автоматика/провода/крепеж и прочее еще на пол-ляма в легкую набежит. И это при том что года через 3-4 акумы придется менять или изначпльно покупать более дооогие литий-титанатные.  И еще ннмного математики: 1 год ≈ 300 дней * 20 часов * 3 кВт/час ≈ 20 000 кВт/час * 5 руб/час ≈ 100 000 руб на электричество в год. Затратив 2 ляма на солнечные панели, свои затраты мы будем отбивать 20 лет. В Америке солнечная энеогетика выгодна по 2 причинам: первое, там она развита Только в ярких регионах. Второе, у амеров можно сливать "лишнюю" энергию в уличную сеть, и получать за это деньги, что существенно увеличивает окупаемость всей этой байды.  У нас же панели имеет смысл использовать как резервное питание на час-два. И не более. 
×
×
  • Создать...