Принцип рада предложеног екрана, који су направили и изградили Инструцтаблес под надимком алстроемериа, је следећи: сегменти напредни од сервоса бацају сенку, што их чини видљивим. Преостали сегменти, смештени у истој равнини са позадином, спајају се с њом.
То је јасно
домаће Испада да је скупо, јер за њу мајстор набави чак 28 таквих серво-рачунара:
И модул управљања који се повезује на
Ардуино овако:
Чини се да је сат у стварном времену (РТЦ) модул у таквој позадини врло мали трошак.
Након што је набавио све потребне компоненте, мајстор их је досад оставио да раде на шаблонима за прављење механичког дела екрана. Добија четири датотеке:
1,
2,
3,
4. Чаробњак приказује датотеке 1 и 3 два пута на плотеру за сечење и 2 и 4, једну по једну, све у скали 1: 1, и добија шест делова, од којих неки на неки начин личе на старе картице за бушење. Такође можете да штампате, такође у размери 1: 1, у истим количинама, и ручно сечете.
Дремел сече шупље металне игле у дужини од 20 мм и цеви са спољним пречником незнатно већим од спољног пречника осовине дужине 10 мм:
Лепи слојеве дебелом обостраном траком, додаје цеви:
Додаје покретне сегменте залепљене иглема које пролазе кроз цеви, а на полеђини се лепакима гурају челичне жице истим клиновима, а овде су игле шупље:
Савија гураче, лепи серво и повезује се са њима:
Затвара серво с преосталим перфорираним лимом:
Серво управљачки модул повезује се према шеми датој на почетку чланка. Сами погони су повезани на модул редоследом који одговара стандардним ознакама сегмента:
РТЦ модул се повезује на следећи начин: СДА - пин 4 Ардуино, СЦЛ - пин 5, плус снага и заједничка жица - паралелно са одговарајућим Ардуино линијама. Ево резултата:
Чаробњак поставља време у РТЦ модулу са овом скицом (потребна вам је РТЦлиб библиотека):
#инцлуде
#инцлуде "РТЦлиб.х"
РТЦ_ДС1307 РТЦ;
воид сетуп () {
Сериал.бегин (57600);
Вире.бегин ();
РТЦ.бегин ();
иф (! РТЦ.исруннинг ()) {
Сериал.принтлн ("РТЦ се НЕ покреће!");
РТЦ.адјуст (ДатеТиме (__ ДАТЕ__, __ТИМЕ__));
}
}
Затим се попуњава главна скица која захтева исту библиотеку:
#инцлуде <Вире.х>
#инцлуде "РТЦлиб.х"
РТЦ_ДС1307 РТЦ;
кратак сегА = 0; // Приказивачки пин 14
кратак сегБ = 1; // Приказивачки пин 16
кратак сегЦ = 2; // Приказивачки пин 13
кратак сегД = 3; // Приказивачки пин 3
кратак сегЕ = 4; // Приказивачки пин 5
кратак сегФ = 5; // Приказивачки пин 11
кратак сегГ = 6; // Приказивачки пин 15
кратак сегА_ОУТ = 110;
кратак сегБ_ОУТ = 110;
кратак сегЦ_ОУТ = 110;
кратак сегД_ОУТ = 110;
кратак сегЕ_ОУТ = 110;
кратак сегФ_ОУТ = 110;
кратак сегГ_ОУТ = 110;
кратак сегА_ИН = 90;
кратак сегБ_ИН = 90;
кратак сегЦ_ИН = 90;
кратак сегД_ИН = 90;
кратак сегЕ_ИН = 90;
кратак сегФ_ИН = 90;
кратак сегГ_ИН = 90;
инт ТИМЕ = 2000;
ДатеТиме датеПаст;
ДатеТиме датеНов;
// чување куће
воид сетуп () {
Сериал.бегин (9600);
Вире.бегин ();
РТЦ.бегин ();
РТЦ.адјуст (ДатеТиме (__ ДАТЕ__, __ТИМЕ__));
датеПаст = РТЦ.нов ();
}
// главна петља
воид лооп () {
датеНов = РТЦ.нов ();
иф (! (датеПаст.хоур () == датеНов.хоур () && датеПаст.минуте () == датеНов.хоур ()))
{
дисплаиНумбер (датумНов.хоур () * 100 + датеНов.минуте ());
датеПаст = датеНов;
}
}
// С обзиром на број, приказујемо 10:22
// Након проласка кроз четири броја, дисплеј је искључен
воид дисплаиНумбер (инт тоДисплаи) {
фор (инт цифра = 4; цифра> 0; цифра--) {
лигхтНумбер (тоДисплаи% 10, цифра);
тоДисплаи / = 10;
}
// покренути покрет
Сериал.принт ("Т"); Сериал.принтлн (ТИМЕ);
}
воид потез (инт серво, инт положај) {
Сериал.принт ("#");
Сериал.принт (серво);
Сериал.принт ("П");
Серијски.принт (позиција);
}
// Давши број, окреће сегменте
// Ако је број == 10, искључите број
воид лигхтНумбер (инт бројТоДисплаи, инт сегмент) {
инт оффсет = (сегмент - 1) * 7;
прекидач (бројТоДисплаи) {
случај 0:
преместити (сегА + оффсет, сегА_ОУТ);
преместити (сегБ + оффсет, сегБ_ОУТ);
преместити (сегЦ + оффсет, сегЦ_ОУТ);
преместити (сегД + оффсет, сегД_ОУТ);
преместити (сегЕ + оффсет, сегЕ_ОУТ);
преместити (сегФ + помак, сегФ_ОУТ);
преместити (сегГ + оффсет, сегГ_ИН);
одмор;
случај 1:
преместити (сегА + оффсет, сегА_ИН);
преместити (сегБ + оффсет, сегБ_ОУТ);
преместити (сегЦ + оффсет, сегЦ_ОУТ);
преместити (сегД + оффсет, сегД_ИН);
преместити (сегЕ + оффсет, сегЕ_ИН);
преместити (сегФ + оффсет, сегФ_ИН);
преместити (сегГ + оффсет, сегГ_ИН);
одмор;
случај 2:
преместити (сегА + оффсет, сегА_ОУТ);
преместити (сегБ + оффсет, сегБ_ОУТ);
преместити (сегЦ + оффсет, сегЦ_ИН);
преместити (сегД + оффсет, сегД_ОУТ);
преместити (сегЕ + оффсет, сегЕ_ОУТ);
преместити (сегФ + оффсет, сегФ_ИН);
преместити (сегГ + оффсет, сегГ_ОУТ);
одмор;
случај 3:
преместити (сегА + оффсет, сегА_ОУТ);
преместити (сегБ + оффсет, сегБ_ОУТ);
преместити (сегЦ + оффсет, сегЦ_ОУТ);
преместити (сегД + оффсет, сегД_ОУТ);
преместити (сегЕ + оффсет, сегЕ_ИН);
преместити (сегФ + оффсет, сегФ_ИН);
преместити (сегГ + оффсет, сегГ_ОУТ);
одмор;
случај 4:
преместити (сегА + оффсет, сегА_ИН);
преместити (сегБ + оффсет, сегБ_ОУТ);
преместити (сегЦ + оффсет, сегЦ_ОУТ);
преместити (сегД + оффсет, сегД_ИН);
преместити (сегЕ + оффсет, сегЕ_ИН);
преместити (сегФ + помак, сегФ_ОУТ);
преместити (сегГ + оффсет, сегГ_ОУТ);
одмор;
случај 5:
преместити (сегА + оффсет, сегА_ОУТ);
преместити (сегБ + оффсет, сегБ_ИН);
преместити (сегЦ + оффсет, сегЦ_ОУТ);
преместити (сегД + оффсет, сегД_ОУТ);
преместити (сегЕ + оффсет, сегЕ_ИН);
преместити (сегФ + помак, сегФ_ОУТ);
преместити (сегГ + оффсет, сегГ_ОУТ);
одмор;
случај 6:
преместити (сегА + оффсет, сегА_ОУТ);
преместити (сегБ + оффсет, сегБ_ИН);
преместити (сегЦ + оффсет, сегЦ_ОУТ);
преместити (сегД + оффсет, сегД_ОУТ);
преместити (сегЕ + оффсет, сегЕ_ОУТ);
преместити (сегФ + помак, сегФ_ОУТ);
преместити (сегГ + оффсет, сегГ_ОУТ);
одмор;
случај 7:
преместити (сегА + оффсет, сегА_ОУТ);
преместити (сегБ + оффсет, сегБ_ОУТ);
преместити (сегЦ + оффсет, сегЦ_ОУТ);
преместити (сегД + оффсет, сегД_ИН);
преместити (сегЕ + оффсет, сегЕ_ИН);
преместити (сегФ + оффсет, сегФ_ИН);
преместити (сегГ + оффсет, сегГ_ИН);
одмор;
случај 8:
преместити (сегА + оффсет, сегА_ОУТ);
преместити (сегБ + оффсет, сегБ_ОУТ);
преместити (сегЦ + оффсет, сегЦ_ОУТ);
преместити (сегД + оффсет, сегД_ОУТ);
преместити (сегЕ + оффсет, сегЕ_ОУТ);
преместити (сегФ + помак, сегФ_ОУТ);
преместити (сегГ + оффсет, сегГ_ОУТ);
одмор;
случај 9:
преместити (сегА + оффсет, сегА_ОУТ);
преместити (сегБ + оффсет, сегБ_ОУТ);
преместити (сегЦ + оффсет, сегЦ_ОУТ);
преместити (сегД + оффсет, сегД_ОУТ);
преместити (сегЕ + оффсет, сегЕ_ИН);
преместити (сегФ + помак, сегФ_ОУТ);
преместити (сегГ + оффсет, сегГ_ОУТ);
одмор;
случај 10:
преместити (сегА + оффсет, сегА_ИН);
преместити (сегБ + оффсет, сегБ_ИН);
преместити (сегЦ + оффсет, сегЦ_ИН);
преместити (сегД + оффсет, сегД_ИН);
преместити (сегЕ + оффсет, сегЕ_ИН);
преместити (сегФ + оффсет, сегФ_ИН);
преместити (сегГ + оффсет, сегГ_ИН);
одмор;
}
}
Све ради:
Тако је механички приказ не-тривијалног дизајна спреман.