ярко горят, как и все, хочется чтобы ночью горели в пол накала, а то ночью по глазам сильно светят
Поставьте балластный резистор побольше.
Начинаем городить ерунду. Не надо никаких балластных резисторов!
merzavec, в 395 посте вы сами пишите что не подключали 9 выход ардуины. А именно этот выход у вас в скетче управляет яркостью. Подключите его на вход bright control М5450 и все будет работать.
merzavec, в 395 посте вы сами пишите что не подключали 9 выход ардуины. А именно этот выход у вас в скетче управляет яркостью. Подключите его на вход bright control М5450 и все будет работать.
Т.е. в вашем случае это будет выглядеть так:
1) Убираем резистор 1кОм (он подключен от +12В к ножке 19 М5450)
2) Этот вывод (ножка 19) М5450 подключаем к выводу 12 ардуины (это вывод D09).
/*
надо добавить контакт, это умная лестница, надо чтобы в дежурном режиме на нем появлялось +5 в, а когда срабатывают датчики +5 пропадало.
*/
//Устанавливаем контакты для драйвера
#define DATA 6
#define CLOCK 7
//Устанавливаем контакт фоторезистора
#define FOTO A0
//Устанавливаем контакты для первого датчика
#define T1 4
#define E1 5
//Устанавливаем контакты для второго датчика
#define T2 2
#define E2 3
//Устанавливаем контакт управления яркостью светодиодов
#define BR 9
#define PASSIVE 8
const byte brightset = 255;
//Задаем количество светодиодов
#define NUM_LEDS 14
const uint32_t mask = 0b111111111111;
void setup()
{
pinMode(DATA, OUTPUT);
pinMode(CLOCK, OUTPUT);
digitalWrite(CLOCK, HIGH);
digitalWrite(FOTO, HIGH);
pinMode(BR, OUTPUT);
pinMode(T1, OUTPUT);
pinMode(T2, OUTPUT);
pinMode(E1, INPUT);
pinMode(E2, INPUT);
digitalWrite(E1, HIGH);
digitalWrite(E2, HIGH);
FirstLast();
pinMode(PASSIVE, OUTPUT);
digitalWrite(PASSIVE, HIGH);
}
void loop()
{
int D1 = Ultrasonic(T1, E1); // измеряем расстояние первого датчика
if(D1 > 0 && D1 < 100) // если расстояние меньше 100см, то
{
digitalWrite(PASSIVE, LOW);
analogWrite (BR, brightset);
for(char i = NUM_LEDS-1; i >= 0; i--) // зажигаем светодиоды в одну сторону
{
MM5450(mask<<i);
delay(500); // задержка зажигания
}
delay(10000); // ждем 3 секунды
for(char i = 0; i <= NUM_LEDS; i++) // тушим светодиоды
{
MM5450(mask>>i);
delay(500); // задержка затухания
}
FirstLast();
}
int D2 = Ultrasonic(T2, E2); // измеряем расстояние второго датчика
if(D2 > 0 && D2 < 100) // если расстояние меньше 100см, то
{
digitalWrite(PASSIVE, LOW);
analogWrite (BR, brightset);
for(char i = NUM_LEDS-1; i >= 0; i--) // зажигаем светодиоды в другую сторону
{
MM5450(mask>>i);
delay(500); // задержка зажигания
}
delay(10000); // ждем 3 секунды
for(char i = 0; i <= NUM_LEDS; i++) // тушим светодиоды
{
MM5450(mask<<i);
delay(500); // задержка затухания
}
FirstLast();
}
delay(20);
digitalWrite(PASSIVE, HIGH);
}
void FirstLast()
{
analogWrite (BR, 25);
MM5450(0b000000000000);
}
int Ultrasonic(byte Trig_pin, byte Echo_pin)
{
digitalWrite(Trig_pin, HIGH);
delayMicroseconds(10);
digitalWrite(Trig_pin, LOW);
return pulseIn(Echo_pin, HIGH, 20000)/29.0/2;
}
void MM5450(uint32_t data)
{
digitalWrite(DATA, 1);
digitalWrite(CLOCK, LOW);
digitalWrite(CLOCK, HIGH);
for(byte i = 0; i < NUM_LEDS; i++)
{
if(data & (1UL<<i)) digitalWrite(DATA, HIGH);
else digitalWrite(DATA, LOW);
digitalWrite(CLOCK, LOW);
digitalWrite(CLOCK, HIGH);
}
digitalWrite(DATA, 0);
for(byte i = 0; i < 35-NUM_LEDS; i++)
{
digitalWrite(CLOCK, LOW);
digitalWrite(CLOCK, HIGH);
}
}
Сделал так, регулировка первой и последней плавная, переменным резистором, в дежурном режиме в программе отключены первая и последняя ступень, питание поступает через выход девять и BC547.
Сделал так, регулировка первой и последней плавная, переменным резистором, в дежурном режиме в программе отключены первая и последняя ступень, питание поступает через выход девять и BC547.
Чет хрень какая-то у вас. Зачем задействовать D8 (без ШИМ) для упраления первой и последней ступенькой в дежурном режиме? Зачем дополнительно вводить транзистор, четыре диода, переменный резистор и прочей мелочевки? Зачем вам #define BR 9 если вы ввели #define PASSIVE 8 ? Зачем это все? Вам нужно только убрать резистор подтягивающий 19 ножку М5450 к +питания и соединить эту ножку с ШИМ-выводом ардуины D9. И все! Все остальное в скетче уже есть, уровень яркости регилируете параметром BR...
Чет хрень какая-то у вас. Зачем задействовать D8 (без ШИМ) для упраления первой и последней ступенькой в дежурном режиме? Зачем дополнительно вводить транзистор, четыре диода, переменный резистор и прочей мелочевки? Зачем вам #define BR 9 если вы ввели #define PASSIVE 8 ? Зачем это все? Вам нужно только убрать резистор подтягивающий 19 ножку М5450 к +питания и соединить эту ножку с ШИМ-выводом ардуины D9. И все! Все остальное в скетче уже есть, уровень яркости регилируете параметром BR...
Дело конечно ваше, но мое мнение такое - чем меньше деталей, тем надежней... Решение должно быть красивым))
Мой совет: убирайте из схемы R15, R16, R17, R18, T2, D1, D2, D3, D4. Восстановите связи ключей управления первой и последней ступеньки с выходами М5450. Скетч можно и не менять - должно работать.
не регули руется, когда просто к мс 5450 подключаешь светодиод, он горит в пол накала, а через полевики нет, а 9 канал в скетче просто не стал удалять, незнаю, все работает, доп. транзистор управляет минусом полевика и соответственно яркостью этих ступеней.
не регули руется, когда просто к мс 5450 подключаешь светодиод, он горит в пол накала, а через полевики нет, а 9 канал в скетче просто не стал удалять, незнаю, все работает, доп. транзистор управляет минусом полевика и соответственно яркостью этих ступеней.
хозяин - барин))
вам нужно было б только еще void FirstLast() поменять, в вашем скетче в дежурном режиме крайние светодиоды погашены:
void FirstLast()
{
analogWrite (BR, 25);
MM5450 (0b00000000000000);
}
а нужно чтоб они светились - MM5450 (0b10000000000001)
ну а насколько светятся они определяет analogWrite (BR, xx)
только с фоторезистором "поиграйтесь", в начале этого топика есть информация об этом. "Поиграться" - это выяснить какие конкретно диапазоны значений будут соответствовать именно вашему фоторезистору для режима "день" и режима "ночь"... Я с год назад экспериментировал с каким-то фоторезистром, так у меня значения отличались буквально на 7-9 единиц...
Спасибо ! Как раз руки дошли сделать ночную подсветку первой и последней ступени. А можно узнать этот скетч меньше нагружает драйвер MM5450 ? (Как писал - maksim в 182 сообщении: - Что бы постоянно не "дрочить" MM5450 лучше сделать так:) (http://arduino.ru/comment/reply/2867/100150?quote=1#comment-form) Ато я, к сожалению не силен в скетчах :(. Заранее пасибки !
Спасибо ! Как раз руки дошли сделать ночную подсветку первой и последней ступени. А можно узнать этот скетч меньше нагружает драйвер MM5450 ? (Как писал - maksim в 182 сообщении: - Что бы постоянно не "дрочить" MM5450 лучше сделать так:) (http://arduino.ru/comment/reply/2867/100150?quote=1#comment-form) Ато я, к сожалению не силен в скетчах :(. Заранее пасибки !
я бы по этому поводу не парился, параметр BR как раз и управляет яркостью (по ШИМ) через М5450... Как только задействован параметр BR, так и начинаем "дрочить" М5450... но здесь надо понимать, что это нормальный (штатный) режим работы для данной микросхемы и переживать о ее здоровье не стОит)))
а как в библиотеке мс 5450 добавить световые эфекты, например наступаю на первую ступень, ступени по очереди реезко загараются в верх, потом резко вниз, а потом плавно по одной загораются как и положенно, просто поиграться хочется с эфектами:)), а то как то однообразно как у всех
Всем привет! подскажите как переписать скетч под PIR датчики ,подсветку сделал на улице по заборе ,тестирую на ультрасониках,очень красиво получилось . в програмировании я ноль,пытаюсь хоть чему-то научиться,могу только что то подправить.
1) Убираем резистор 1кОм (он подключен от +12В к ножке 19 М5450)
2) Этот вывод (ножка 19) М5450 подключаем к выводу 12 ардуины (это вывод D09).
собственно все... проверьте.
[/quote]
birdtlt пишет:
Вам нужно только убрать резистор подтягивающий 19 ножку М5450 к +питания и соединить эту ножку с ШИМ-выводом ардуины D9. И все! Все остальное в скетче уже есть, уровень яркости регилируете параметром BR...
подскажите пожалуйста. я взял схему которую выкладывал тов. linker1185 , (пост 329), как я понял у него схема именно такая, но там от 19-й ноги м5450 к 12 ноге ардуины идет дорожна, но через резистор 1К . Резистор убрать или оставить ?
подскажите пожалуйста. я взял схему которую выкладывал тов. linker1185 , (пост 329), как я понял у него схема именно такая, но там от 19-й ноги м5450 к 12 ноге ардуины идет дорожна, но через резистор 1К . Резистор убрать или оставить ?
и на сколько я понял его скеч вполне пригодный ?
спасибо за ответы!
не вижу необходимости в этом резисторе (я бы его не ставил), в принципе можно и оставить, но лучше вместо него перемычку запаять . Скетч используйте тот что понравился - поправить/изменить всегда можно.
PS. linker1185, кстати, о том, что резистор к 19 ноге М5450 не нужен говорит в посте 328.
не вижу необходимости в этом резисторе (я бы его не ставил), в принципе можно и оставить, но лучше вместо него перемычку запаять . Скетч используйте тот что понравился - поправить/изменить всегда можно.
PS. linker1185, кстати, о том, что резистор к 19 ноге М5450 не нужен говорит в посте 328.
[/quote]
Спасибо, теперь ясно! А то я уже сделал, но еще не включал, вот и думал не придется ли переделывать. в скетчах я мало понимаю. Но как я понял тот что он предложил с дежурным светом первой и последней ступени?
собрал я схему, подключил, но при первом пуске сгорел один транзистр.
на ардуине один диод горит, другой горит но при срабатывании датчика кратковременно гаснет(и реагирует только на один датчик, менял местами не меняется). ленты не загораются. с лед драйвера на транзисторы идет 12в постоянно! это нормально ? если датчик вплотную закрыть рукой лента горит(пока что одна ,но одинаково на всех контактах).
вместо фоторезистора поставил обычный переменный резистор на 10к , от изменения его параметра второй светодиод(тот что реагирует на датчик) либо горит либо нет.
что я делаю не так ? где могут быть ошибки и т.д. ?
может скечь коряво залился ?
И какой кусок скеча убрать чтобы отключить фото резистор?
Всем добрый день! Сделал лестницу, все хорошо, но с датчики небольшие проблемы, подскажите как менять расстояние срабатывания, какое значение для расстояния 60см например?
Добрый день народ! давно читаю тему ступенек, недавно зарегистрировался здесь, всем большое спасибо, что поддерживаете данную ветку, и хочу тоже внести небольшой вклад в развитие:
Так как просматривая разработку Лукьянова - по теме лестницы, что превратилось у него в коммерческое использование, захотелось и себе собрать такое же, жаль, только, что закрыты темы у него и удалены схемы обновленные. Все конечно заходили неоднократно на его страницу и видели пустое окно и в надежде, что там появится схема нажав на окно - к сожалению не открывалась никак....
Но тут я вспомнил о том, что есть такая функция как история сайта, и к моему счастью там находилась данная схема на обвязке ULN2803 и 74HC04, так что кому надо - выкладываю.
Разобрался, для своих целей на основе кода от Myero сделал плавное разжигание и угазание в одну и другую сторону, датчики и подсветка первой, средней и последней ступеней вырезаны, средняя ступень вырезана, бегущая тень вырезана, код упрощён.
//Устанавливаем контакты для драйвера
#define DATA 6
#define CLOCK 7
//Устанавливаем контакт управления яркостью светодиодов
#define BR 9
const byte brightset = 250;// яркость включенной лестницы
const byte brightsetFirstLast = 1; // яркость первой и последнй ступеньки
//Задаем количество светодиодов
#define NUM_LEDS 17
const uint32_t masky []= {
0b0000000000000000000000000000001,
0b0000000000000000000000000000001,
0b0000000000000000000000000000001,
0b0000000000000000000000000000001,
0b1000000000000000000000000000001,
0b1000000000000000000000000000001,
0b1000000000000000000000000000001,
0b1000000000000000100000000000001,
0b1000000000100000000000100000001,
0b1000000000000000100000000000001,
0b1000000100000001000000010000001,
0b1000000100000001000000010000001,
0b1000010000010000001000001000001,
0b1000010000010000001000001000001,
0b1000100001000010000100001000001,
0b1000100001000010000100001000001,
0b1010101010101010101010101010101,
0b1101101101101101101101101101101,
0b1111011111011111101111110111111,
0b1111111111111111111111111111111,
};
unsigned long FirstLastBitDec; // количество ступенек в двоичном коде типо 0b100000000000000000000....
uint32_t piss;
uint32_t data;
void setup()
{
Serial.begin(9600);
pinMode(DATA, OUTPUT);
pinMode(CLOCK, OUTPUT);
DetectBitNumLeds();
}
void loop() // Основной цикл.
{
delay(10);
TurnOnBotTop ();
delay(10);
TurnOnTopBot ();
}
void TurnOnBotTop () //Зажигаем лестницу снизу вверх
{
for (char i = NUM_LEDS ; i > 0; i--) // зажигаем светодиоды снизу доверху
{
PWM_MM5450(FirstLastBitDec*2-1 >> i);
//delay(300); // задержка зажигания
}
for (char i = 1; i < NUM_LEDS; i++) // тушим светодиоды снизу доверху
{
PWMOFF_MM5450(FirstLastBitDec*2-1 << i);
//delay(300); // задержка затухания
}
}
void TurnOnTopBot () // зажигаем лестницу сверху вниз
{
for (char i = NUM_LEDS; i > 0; i--) // зажигаем светодиоды сверху донизу
{
PWM_MM5450(FirstLastBitDec*2-1 << i);
// delay(300); // задержка зажигания
}
for (char i = 1; i <NUM_LEDS; i++) // тушим светодиоды сверху донизу
{
PWMOFF_MM5450(FirstLastBitDec*2-1 >> i);
// delay(300); // задержка затухания
}
}
void DetectBitNumLeds()//определяем число ступенек в BIN формате первой, последней и той что по середине исходя из количества ступенек
{
FirstLastBitDec=1;
for (int i=1;i<NUM_LEDS;i++)
{
FirstLastBitDec=FirstLastBitDec*2;
Serial.println(FirstLastBitDec);
}
}
void PWM_MM5450(uint32_t data) // шим включения ступеньки
{
for (int j=0;j<=19;j++)
{
for (int i=0;i<=32;i++)
{
if (masky[j] & (1UL << i))
{
MM5450(data);
}
else
{MM5450(piss);
}
}
}piss=data;
}
void PWMOFF_MM5450(uint32_t data) // шим выключения ступеньки
{
for (int j=19;j>=0;j--)
{
for (int i=0;i<=32;i++)
{
if (masky[j] & (1UL << i))
{
MM5450(piss);
}
else
{MM5450(data);
}
}
}piss=data;
}
void MM5450(uint32_t jopa) // програмка зажигания ступеньки
{byte i;
digitalWrite(DATA, 1);
digitalWrite(CLOCK, LOW);
digitalWrite(CLOCK, HIGH);
for (i = 0; i < NUM_LEDS; i++)
{
if (jopa & (1UL << i)) digitalWrite(DATA, HIGH);
else digitalWrite(DATA, LOW);
digitalWrite(CLOCK, LOW);
digitalWrite(CLOCK, HIGH);
}
digitalWrite(DATA, 0);
for (byte j = 0; j < 35 - NUM_LEDS; j++)
{
digitalWrite(CLOCK, LOW);
digitalWrite(CLOCK, HIGH);
}
}
Вот кому надо код с плавным розжигом на m5450 на основе кода Myero с вырезаными третьим датчиком, средней ступенью и бегущей тенью, разберётесь как настроить фоторезистор (я использую китайский на 10кОм в тёмном состоянии и порядка 3-х в засвеченом), сериал порт необходимо тоже закомментить в коде/
//Устанавливаем контакты для драйвера
#define DATA 6
#define CLOCK 7
//Устанавливаем контакт управления яркостью светодиодов
#define BR 9
const byte brightset = 250;// яркость включенной лестницы
const byte brightsetFirstLast = 1; // яркость первой и последнй ступеньки
//Задаем количество светодиодов
#define NUM_LEDS 17
const uint32_t masky []= {
0b0000000000000000000000000000001,
0b0000000000000000000000000000001,
0b0000000000000000000000000000001,
0b0000000000000000000000000000001,
0b1000000000000000000000000000001,
0b1000000000000000000000000000001,
0b1000000000000000000000000000001,
0b1000000000000000100000000000001,
0b1000000000100000000000100000001,
0b1000000000000000100000000000001,
0b1000000100000001000000010000001,
0b1000000100000001000000010000001,
0b1000010000010000001000001000001,
0b1000010000010000001000001000001,
0b1000100001000010000100001000001,
0b1000100001000010000100001000001,
0b1010101010101010101010101010101,
0b1101101101101101101101101101101,
0b1111011111011111101111110111111,
0b1111111111111111111111111111111,
};
unsigned long FirstLastBitDec; // количество ступенек в двоичном коде типо 0b100000000000000000000....
uint32_t piss;
uint32_t data;
void setup()
{
Serial.begin(9600);
pinMode(DATA, OUTPUT);
pinMode(CLOCK, OUTPUT);
DetectBitNumLeds();
}
void loop() // Основной цикл.
{
delay(10);
TurnOnBotTop ();
delay(10);
TurnOnTopBot ();
}
void TurnOnBotTop () //Зажигаем лестницу снизу вверх
{
for (char i = NUM_LEDS ; i > 0; i--) // зажигаем светодиоды снизу доверху
{
PWM_MM5450(FirstLastBitDec*2-1 >> i);
//delay(300); // задержка зажигания
}
for (char i = 1; i < NUM_LEDS; i++) // тушим светодиоды снизу доверху
{
PWMOFF_MM5450(FirstLastBitDec*2-1 << i);
//delay(300); // задержка затухания
}
}
void TurnOnTopBot () // зажигаем лестницу сверху вниз
{
for (char i = NUM_LEDS; i > 0; i--) // зажигаем светодиоды сверху донизу
{
PWM_MM5450(FirstLastBitDec*2-1 << i);
// delay(300); // задержка зажигания
}
for (char i = 1; i <NUM_LEDS; i++) // тушим светодиоды сверху донизу
{
PWMOFF_MM5450(FirstLastBitDec*2-1 >> i);
// delay(300); // задержка затухания
}
}
void DetectBitNumLeds()//определяем число ступенек в BIN формате первой, последней и той что по середине исходя из количества ступенек
{
FirstLastBitDec=1;
for (int i=1;i<NUM_LEDS;i++)
{
FirstLastBitDec=FirstLastBitDec*2;
Serial.println(FirstLastBitDec);
}
}
void PWM_MM5450(uint32_t data) // шим включения ступеньки
{
for (int j=0;j<=19;j++)
{
for (int i=0;i<=32;i++)
{
if (masky[j] & (1UL << i))
{
MM5450(data);
}
else
{MM5450(piss);
}
}
}piss=data;
}
void PWMOFF_MM5450(uint32_t data) // шим выключения ступеньки
{
for (int j=19;j>=0;j--)
{
for (int i=0;i<=32;i++)
{
if (masky[j] & (1UL << i))
{
MM5450(piss);
}
else
{MM5450(data);
}
}
}piss=data;
}
void MM5450(uint32_t jopa) // програмка зажигания ступеньки
{byte i;
digitalWrite(DATA, 1);
digitalWrite(CLOCK, LOW);
digitalWrite(CLOCK, HIGH);
for (i = 0; i < NUM_LEDS; i++)
{
if (jopa & (1UL << i)) digitalWrite(DATA, HIGH);
else digitalWrite(DATA, LOW);
digitalWrite(CLOCK, LOW);
digitalWrite(CLOCK, HIGH);
}
digitalWrite(DATA, 0);
for (byte j = 0; j < 35 - NUM_LEDS; j++)
{
digitalWrite(CLOCK, LOW);
digitalWrite(CLOCK, HIGH);
}
}
Подскажите мне ту.. глупому что делает знак >> и <<, гугл молчит а сам не разберусь никак, правильно я понимаю что это переход на следующий бит массива? И подскажите еще транзисторы IRF7314 от 12 вольт будут работать без резистивного делителя?
Так правильно и называется. Это, соответственно, на сколько бит будет сдвинуто число вправо или влево. Левый сдвиг, это по сути *2^n, где n - на сколько бит сдвиг. С сутью правого чуть сложнее, т.к. там нижние биты просто исчезают
Скоро предстоит изготовление лестницы в доме сына - хочу сделать подарок.
Вопрос к Ahtung533 по коду из #439. Я так понял, что это только часть кода, к которой нужно дописать еще коды датчиков?
Да, там оформлено именно плавный поджиг мм5451, датчик расстояния и датчик освещённости надо прописать, в зависимости от того какие у вас. Полистайте ветку, там есть примеры с описанием.
ярко горят, как и все, хочется чтобы ночью горели в пол накала, а то ночью по глазам сильно светят
Поставьте балластный резистор побольше.
ярко горят, как и все, хочется чтобы ночью горели в пол накала, а то ночью по глазам сильно светят
Поставьте балластный резистор побольше.
Начинаем городить ерунду. Не надо никаких балластных резисторов!
merzavec, в 395 посте вы сами пишите что не подключали 9 выход ардуины. А именно этот выход у вас в скетче управляет яркостью. Подключите его на вход bright control М5450 и все будет работать.
merzavec, в 395 посте вы сами пишите что не подключали 9 выход ардуины. А именно этот выход у вас в скетче управляет яркостью. Подключите его на вход bright control М5450 и все будет работать.
Т.е. в вашем случае это будет выглядеть так:
1) Убираем резистор 1кОм (он подключен от +12В к ножке 19 М5450)
2) Этот вывод (ножка 19) М5450 подключаем к выводу 12 ардуины (это вывод D09).
собственно все... проверьте.
Сделал так, регулировка первой и последней плавная, переменным резистором, в дежурном режиме в программе отключены первая и последняя ступень, питание поступает через выход девять и BC547.
Сделал так, регулировка первой и последней плавная, переменным резистором, в дежурном режиме в программе отключены первая и последняя ступень, питание поступает через выход девять и BC547.
Чет хрень какая-то у вас. Зачем задействовать D8 (без ШИМ) для упраления первой и последней ступенькой в дежурном режиме? Зачем дополнительно вводить транзистор, четыре диода, переменный резистор и прочей мелочевки? Зачем вам #define BR 9 если вы ввели #define PASSIVE 8 ? Зачем это все? Вам нужно только убрать резистор подтягивающий 19 ножку М5450 к +питания и соединить эту ножку с ШИМ-выводом ардуины D9. И все! Все остальное в скетче уже есть, уровень яркости регилируете параметром BR...
[
Чет хрень какая-то у вас. Зачем задействовать D8 (без ШИМ) для упраления первой и последней ступенькой в дежурном режиме? Зачем дополнительно вводить транзистор, четыре диода, переменный резистор и прочей мелочевки? Зачем вам #define BR 9 если вы ввели #define PASSIVE 8 ? Зачем это все? Вам нужно только убрать резистор подтягивающий 19 ножку М5450 к +питания и соединить эту ножку с ШИМ-выводом ардуины D9. И все! Все остальное в скетче уже есть, уровень яркости регилируете параметром BR...
Дело конечно ваше, но мое мнение такое - чем меньше деталей, тем надежней... Решение должно быть красивым))
Мой совет: убирайте из схемы R15, R16, R17, R18, T2, D1, D2, D3, D4. Восстановите связи ключей управления первой и последней ступеньки с выходами М5450. Скетч можно и не менять - должно работать.
не регули руется, когда просто к мс 5450 подключаешь светодиод, он горит в пол накала, а через полевики нет, а 9 канал в скетче просто не стал удалять, незнаю, все работает, доп. транзистор управляет минусом полевика и соответственно яркостью этих ступеней.
не регули руется, когда просто к мс 5450 подключаешь светодиод, он горит в пол накала, а через полевики нет, а 9 канал в скетче просто не стал удалять, незнаю, все работает, доп. транзистор управляет минусом полевика и соответственно яркостью этих ступеней.
хозяин - барин))
вам нужно было б только еще void FirstLast() поменять, в вашем скетче в дежурном режиме крайние светодиоды погашены:
void FirstLast()
{
analogWrite (BR, 25);
MM5450 (0b00000000000000);
}
а нужно чтоб они светились - MM5450 (0b10000000000001)
ну а насколько светятся они определяет analogWrite (BR, xx)
Вот через диоды они и питание идет когда в программе MM5450 (0b00000000000000);
Да вы были правы analogWrite (BR, xx), меняеш значение и яркость меняется, спасибо Вам большое, а то колхозить начал схему.
только вот фото резистор вообще не реагирует, схема одинаково работает что с ни, что без него, что в темноте он, что свечу на него
В вашем скетче нет условия для фоторезистора.
Ясно, спасибо за консультацию
только с фоторезистором "поиграйтесь", в начале этого топика есть информация об этом. "Поиграться" - это выяснить какие конкретно диапазоны значений будут соответствовать именно вашему фоторезистору для режима "день" и режима "ночь"... Я с год назад экспериментировал с каким-то фоторезистром, так у меня значения отличались буквально на 7-9 единиц...
Так же подтягивающий резистор можно поставить подстроечный на 10-15 ком.
Спасибо ! Как раз руки дошли сделать ночную подсветку первой и последней ступени. А можно узнать этот скетч меньше нагружает драйвер MM5450 ? (Как писал - maksim в 182 сообщении: - Что бы постоянно не "дрочить" MM5450 лучше сделать так:) (http://arduino.ru/comment/reply/2867/100150?quote=1#comment-form) Ато я, к сожалению не силен в скетчах :(. Заранее пасибки !
Спасибо ! Как раз руки дошли сделать ночную подсветку первой и последней ступени. А можно узнать этот скетч меньше нагружает драйвер MM5450 ? (Как писал - maksim в 182 сообщении: - Что бы постоянно не "дрочить" MM5450 лучше сделать так:) (http://arduino.ru/comment/reply/2867/100150?quote=1#comment-form) Ато я, к сожалению не силен в скетчах :(. Заранее пасибки !
я бы по этому поводу не парился, параметр BR как раз и управляет яркостью (по ШИМ) через М5450... Как только задействован параметр BR, так и начинаем "дрочить" М5450... но здесь надо понимать, что это нормальный (штатный) режим работы для данной микросхемы и переживать о ее здоровье не стОит)))
а как в библиотеке мс 5450 добавить световые эфекты, например наступаю на первую ступень, ступени по очереди реезко загараются в верх, потом резко вниз, а потом плавно по одной загораются как и положенно, просто поиграться хочется с эфектами:)), а то как то однообразно как у всех
если типа такого прокатит?
Всем привет! подскажите как переписать скетч под PIR датчики ,подсветку сделал на улице по заборе ,тестирую на ультрасониках,очень красиво получилось . в програмировании я ноль,пытаюсь хоть чему-то научиться,могу только что то подправить.
Доброго времени суток.
Скажите, пожалуйста, кто-нибудь переделывал код для таких случаев как:
1. Если один человек пошёл с низу, а через несколько секунд второй пошёл сверху (ступеньки загораются на встречу друг другу)?
2. Если с низу пошёл один человек, а через пару секунд за ним пошёл второй (время затухания ступеней увеличивается)?
Кто-то в середине темы уже спрашивал, но ответа я не нашёл.
Если у кого-то это получилось или знает как это сделать, то пожалуйста подскажите.
Лестница реализована на ММ5450. Код залит ил 413 поста.
За ранее спасибо.
не вижу необходимости в этом резисторе (я бы его не ставил), в принципе можно и оставить, но лучше вместо него перемычку запаять . Скетч используйте тот что понравился - поправить/изменить всегда можно.
PS. linker1185, кстати, о том, что резистор к 19 ноге М5450 не нужен говорит в посте 328.
не вижу необходимости в этом резисторе (я бы его не ставил), в принципе можно и оставить, но лучше вместо него перемычку запаять . Скетч используйте тот что понравился - поправить/изменить всегда можно.
PS. linker1185, кстати, о том, что резистор к 19 ноге М5450 не нужен говорит в посте 328.
[/quote]
Спасибо, теперь ясно! А то я уже сделал, но еще не включал, вот и думал не придется ли переделывать. в скетчах я мало понимаю. Но как я понял тот что он предложил с дежурным светом первой и последней ступени?
ув. коллеги! подскажите!
собрал я схему, подключил, но при первом пуске сгорел один транзистр.
на ардуине один диод горит, другой горит но при срабатывании датчика кратковременно гаснет(и реагирует только на один датчик, менял местами не меняется). ленты не загораются. с лед драйвера на транзисторы идет 12в постоянно! это нормально ? если датчик вплотную закрыть рукой лента горит(пока что одна ,но одинаково на всех контактах).
вместо фоторезистора поставил обычный переменный резистор на 10к , от изменения его параметра второй светодиод(тот что реагирует на датчик) либо горит либо нет.
что я делаю не так ? где могут быть ошибки и т.д. ?
может скечь коряво залился ?
И какой кусок скеча убрать чтобы отключить фото резистор?
вроде немного разобрался!
транзистр горел , это моя не внимательность, "сопля" припоя была
все остальное из-за фоторезистора.. без него вроде как все работает, но пока что хочу убрать его значение из скетча, т.к. не скоро он ко мне приедет
1 не понятно зачем в плате продублирована на втором слое "земля" от первой ноги 5450 к земле конденсатора и от ардуины к земле датчика
2 на плате нет земли от 23(data ensble) ноги 5450 , хотя на схеме она заземлена
3 зачем нужен подстроечный резистр в схеме? для регулировки "уровня освещенности" ?
со 2-м вопросом разобрался, земля там нужна !) остались 1 и 3
со всем разобрался ! как говорится стоило немного подумать)
немного исправил схему от linker1185 ,
убрал резистор и провел напрямую дорожку к 19-й ноге , от ардуины
избавился от перемычек и верхнего слоя,
дорожки пошире сделал 1,5мм
отверстия 0.5 , так проще сверлить после травления(на мой взгляд)
в общем на мой взгляд так будет лучше! Большое спасибо linker1185 за разводку платы(ну и скечь в том числе), и остальным за помощь !
https://yadi.sk/d/HVNsIbX_uUiaB
Всем добрый день! Сделал лестницу, все хорошо, но с датчики небольшие проблемы, подскажите как менять расстояние срабатывания, какое значение для расстояния 60см например?
int D1 = Ultrasonic(T1, E1); // измеряем расстояние первого датчика
087
088
if(D1 > 0 && D1 < 70) // если расстояние меньше 70см, то
089
Число 70 меняем на 60 или на любое требуемое расстояние. На втором датчике то же самое.
Спасибо!!! Что то я сразу не сообразил
Добрый день народ! давно читаю тему ступенек, недавно зарегистрировался здесь, всем большое спасибо, что поддерживаете данную ветку, и хочу тоже внести небольшой вклад в развитие:
Так как просматривая разработку Лукьянова - по теме лестницы, что превратилось у него в коммерческое использование, захотелось и себе собрать такое же, жаль, только, что закрыты темы у него и удалены схемы обновленные. Все конечно заходили неоднократно на его страницу и видели пустое окно и в надежде, что там появится схема нажав на окно - к сожалению не открывалась никак....
Но тут я вспомнил о том, что есть такая функция как история сайта, и к моему счастью там находилась данная схема на обвязке ULN2803 и 74HC04, так что кому надо - выкладываю.
Лукьянов уже давно отказался от этой схемы и реализовал на tlc5940 и irf7314.
Лукьянов уже давно отказался от этой схемы и реализовал на tlc5940 и irf7314.
Здравствуйте.. попытался сделать ШИМ на 5451... впринципе выходит вполне красиво...
Хороший код у вас, только как убрать из него среднюю ступеньку, там все функции и циклы на неё завязаны??
Разобрался, для своих целей на основе кода от Myero сделал плавное разжигание и угазание в одну и другую сторону, датчики и подсветка первой, средней и последней ступеней вырезаны, средняя ступень вырезана, бегущая тень вырезана, код упрощён.
Вот кому надо код с плавным розжигом на m5450 на основе кода Myero с вырезаными третьим датчиком, средней ступенью и бегущей тенью, разберётесь как настроить фоторезистор (я использую китайский на 10кОм в тёмном состоянии и порядка 3-х в засвеченом), сериал порт необходимо тоже закомментить в коде/
Ahtung533
Подскажите, что подправить в вашем скече, что бы получилось на 13 ступенек.
Подскажите мне ту.. глупому что делает знак >> и <<, гугл молчит а сам не разберусь никак, правильно я понимаю что это переход на следующий бит массива? И подскажите еще транзисторы IRF7314 от 12 вольт будут работать без резистивного делителя?
Подскажите мне ту.. глупому что делает знак >> и <<
http://people.toiit.sgu.ru/Sinelnikov/PT/C/Kern_Ritch.pdf
Не знаю как это правильно называется, но я использовал как побитовый сдвиг двоичного числа. Нет, без резисторов работать не будет.
Так правильно и называется. Это, соответственно, на сколько бит будет сдвинуто число вправо или влево. Левый сдвиг, это по сути *2^n, где n - на сколько бит сдвиг. С сутью правого чуть сложнее, т.к. там нижние биты просто исчезают
Понял, спасибо)
Доброго времени, Уважаемые.
Скоро предстоит изготовление лестницы в доме сына - хочу сделать подарок.
Вопрос к Ahtung533 по коду из #439. Я так понял, что это только часть кода, к которой нужно дописать еще коды датчиков?
Доброго времени, Уважаемые.
Скоро предстоит изготовление лестницы в доме сына - хочу сделать подарок.
Вопрос к Ahtung533 по коду из #439. Я так понял, что это только часть кода, к которой нужно дописать еще коды датчиков?
Да, там оформлено именно плавный поджиг мм5451, датчик расстояния и датчик освещённости надо прописать, в зависимости от того какие у вас. Полистайте ветку, там есть примеры с описанием.
Спасибо, Myero.
С прописями датчиков справлюсь.
Тогда еще одно уточнение: в посте Ahtung533 указал, что "код с плавным розжигом на m5450". А Вы говорите, что для mm5451.
Дело в том, что ММ5450 уже заказал и придет на днях...
Так это один фиг, они отличаются только назначением одного пина, что в Вашем применении не принципиально
Понял. Спасибо.
Буду ждать комплектующие.