светодиодный куб ошибки
- Войдите на сайт для отправки комментариев
Ср, 09/08/2017 - 21:15
// инициализация плюсовых пинов int column[25]={2,3,4,5,6,7,8,9,10,11,12,13,22,23,24,25,26,27,28,29,30,31,32,33,34}; // инициализация минусовых пинов int layer[5]={A0,A1,A2,A3,A4}; void setup() { //Установка строк для вывода for(int i = 0; i<25; i++) // 10 { pinMode(column[i], OUTPUT); } //Установка строк для вывода for(int i = 0; i<5; i++) { pinMode(layer[i], OUTPUT); //20 строка } } //20 void loop() { /////////// включить все, с кодом delay(200); гаснят ряды поочередно { for(int i = 0; i<25; i++) { digitalWrite(column[i], 1); } //30 for(int i = 0; i<5; i++) { digitalWrite(layer[i], 0); } // при включенных диодах данный код гасит ряды вверх вниз и снизу вверх { int x = 75; for(int i = 5; i != 0; i--) ///40 { for(int i = 5; i!=0; i--) { digitalWrite(layer[i-1], 0); delay(x); } for(int i = 0; i<5; i++) { digitalWrite(layer[i], 1); //50 delay(x); } for(int i = 0; i<5; i++) { digitalWrite(layer[i], 0); delay(x); } for(int i = 5; i!=0; i--) { digitalWrite(layer[i-1], 1); //60 delay(x); }}} /// void layerON () { for(int i = 0; i<25; i++) { digitalWrite(column[i], 1); } for(int i = 0; i<5; i++) //70 { digitalWrite(layer[i], 1); }} int x = 75; for(int i = 0; i<5; i++) { digitalWrite(layer[i], 1); } //80 for(int y = 0; y<3; y++) { //включить 0-3 for(int i = 0; i<5; i++) { digitalWrite(column[i], 0); delay(x); } //включить 4-7 for(int i = 4; i<10; i++) { digitalWrite(column[i], 0); delay(x); } //включить 8-11 for(int i = 8; i<15; i++) { digitalWrite(column[i], 0); delay(x); } //включить 12-15 for(int i = 12; i<25; i++) { digitalWrite(column[i], 0); delay(x); } //выключить 0-3 for(int i = 0; i<5; i++) { digitalWrite(column[i], 1); delay(x); } //включить 4-7 for(int i = 5; i<10; i++) { digitalWrite(column[i], 1); delay(x); } //включить 8-11 for(int i = 10; i<15; i++) { digitalWrite(column[i], 1); delay(x); } //выключить 12-15 for(int i = 20; i<25; i++) { digitalWrite(column[i], 1); delay(x); } //включить 12-15 for(int i = 20; i<25; i++) { digitalWrite(column[i], 0); delay(x); } //включить 8-11 for(int i = 15; i<20; i++) { digitalWrite(column[i], 0); delay(x); } //включить 4-7 for(int i = 5; i<10; i++) { digitalWrite(column[i], 0); delay(x); } //включить 0-3 for(int i = 0; i<5; i++) { digitalWrite(column[i], 0); delay(x); } //выключить 12-15 for(int i = 20; i<25; i++) { digitalWrite(column[i], 1); delay(x); } //выключить 8-11 for(int i = 10; i<15; i++) { digitalWrite(column[i], 1); delay(x); } //выключить 4-7 for(int i = 5; i<10; i++) { digitalWrite(column[i], 1); delay(x); } //выключить 0-3 for(int i = 0; i<5; i++) { digitalWrite(column[i], 1); delay(x); } }
ребята прошу помощи в програмировании куба 5х5х5
спаял куб, проверил, подключил к Меге...
пару действий подключил по отдельности - все работает. решил объединить эти действия... и все приплыл.
просьба в гугл не посылать... там я уже был и поэтому обращаюсь уже сюда.
не пойму где ошибка... скобки вроде везде стоят правильно, по при кампилировании все равно на них матерится...
ошибки забыл вставить
Строка 26, что за скобка?
P.S. и 38?
просьба в гугл не посылать...
А куда можно посылать?
скобки вроде везде стоят правильно
Это кто Вам такое сказал?
Знаете волшебную комбинацию клавиш Ctrl+T ?
Попробуйте - узнаете пмоного интересного про свои скобки :)
скобки вроде везде стоят правильно
Нет, скобки стоят неправильно.
P.S. }}} - так писать не следует. Переносите каждую скобку на новую строку и делайте разные отсупы от начала строки (можно нажать Ctrl+T, как уже сказали выше). Иначе тяжело разобраться во вложенности скобок.
Yarik.Yar спасибо, 26 как раз лишней оказалась... еще где то в 66 строке лишняя скобка осталась
Евгений, а никуда посылать не надо - просто без лишней философии помочь... занимаюсь побочно от основной профессии ремонтом сотовых, на тех форумах почему то стараемся помочь друг другу... только здесь почему то еденицы делятся своими знаниями остальные гнобят новичков и тролят... не лично к вам притензия я видел ваши посты подробно расписанные, просто я уже сталкивался с подобным по отношению к себе и к другим начинающим...
попробова ctrl+t попробовал... видно глаз за день замылился ничего толком не увидел...
зы Jeka спасибо, теперь увидел изменения данных кнопок.
попробова ctrl+t попробовал... видно глаз за день замылился ничего толком не увидел...
Странно. Он же при этом "скобку под скобкой" располагает. Должно быть сразу видно.
да, спасибо - видно... я просто уже по запарке не в тех местах натыкал... исправил.
у меня вопрос по чужому скетчу...
автор указал в loop строки с 1 по 7 далее он их вставляет в void...
не могу понять что это?? по гуглу не все термины находит... понимаю, что танный термин описывает в краце следующий код, а принцип работы кода с данной строкой понять не могу
откуда он взял эти строки с 1 по 7 строки???
далее он их вставляет в void...
вставляет в void... ну и скажете же.
Вот так, что ли?
Это функции, которые он сам написал. Их можно называть как угодно, а потом использовать в других местах программы точно так же как стандартные операторы языка.
Ну и как после таких вопросов не издеваться? Скажите, если вам на форум придет человек, который не отличает симки от сд-шки и скажет, что хочет починить убитый телефон - вы ему все с нуля будете обьяснять или все-таки посоветуете к мастеру обратиться? :) намек понятен?
Просто ради интереса - если бы на ваш форум ходили постоянно с таким: "Хочу отремонтировать айфон самостоятельно, сам гитарист, с какой стороны держать паяльник и какие детальки с ножками нужны, напишите срочно!!!" - на котором бы человеке по счету вы сломались?
sadman41, на самом деле это мы так мстим :) Стоит придти в чистой рубашке и галстуке к мастеру по ремонту сотовых или в автосервис - те почему-то считают, что ты полный лох в технике и тебе можно лить в мозги любой шлак и разводить на бабки по любому поводу. А тут, ребята, утритесь - это наша территория :)))
Шутка...
у меня вопрос по чужому скетчу...
http://arduino.ru/Reference/FunctionDeclaration
http://arduino.ru/Reference/Void
отвечу на ваши вопросы:
1. я симку от флешки давно научился отличать... так же как и проц от другой микросхемы... резисторы, диоды и т.д.. ... в ремонте я не новичек...
не сомневайтесь с паяльником я дружу... плохо у меня только по части програмирования...
2. я уже давно научился отличать клиента от начинающего мастера... и если вижу что ему действительно интересно этим заниматся, то помогу... клиентов со свои тамагочами мы действительно пинаем не отрицаю...
но это клиент который даже закона ома не знает и лезет со 100 Ватным паяльником в телефон и после этого приходится еще после него переделывать.
я по моему ни у кого не спросил как пишется код... сам разбираюсь... только под вечер голова уже не варила, где ошибки - я бы не обратился к помощи форума... благо люди без стеба помогли и подсказали...
b707 чья територия? как и на любом форуме без вливания новой крови - форум умрет... не верите? я могу привести кучу форумов которые без пользователей тупо загибаются или на гране закрытия...
как и говорил выше - единицы готовы помогать начинающим... вы тоже не с ардуинкой в руках родились и тоже тупые на ваш нынешний взгляд спрашивали... повезло тому у кого рядом человек знающий оказался и помог разобратся... вокруг меня же только тайга, а у медведей не охото спрашивать и сомневаюсь, что они знают и расположены к дружеской беседе...
еще один вопрос - как заставить загоратся в кубе только определенный диод?
пытаюсь заставить гореть последний 25 светодиод в пятом ряду...
погуглив нашел работу только с одним светодиодом... у меня же пять рядов - 25 плюсовых и 5 минусовых...
пробовал как указано в скетче выше, но ничего не выходит... загорается не тот светодиод...
вы же сами пишете, что одни ряды плюсовые, а другие минусовые. Чтобы загорелся нужный диод, нужно на его плюсовой контакт подать HIGH, а на минусовой - LOW
PS Мне нравится выражение "куб ошибки". Это как "ветер надежды" или "дерево познания"...
предпочел бы второе... :)
да я так и подаю... плюс на 26 и минус на А4... но загараются не те светодиоды и не по одному, а несколько в ряд...
есть одно предположение ошибки сегодня попрактикуюсь и видно будет.
Подайте плюсы и минусы без ардуины, проверите правильность предполагаемой адресации.
Подайте плюсы и минусы без ардуины, проверите правильность предполагаемой адресации.
это я первым делом сделал как спаял куб.
Подайте плюсы и минусы без ардуины, проверите правильность предполагаемой адресации.
это я первым делом сделал как спаял куб.
Следующий шаг, как вы понимаете, поиграть с digitalWrite() на ноги, к которым подключен светодиод, который засветился при прозвонке. С пустым loop(), прямо в setup().
По коду у вас везде идет column[i], а потом вы сразу делаете digitalWrite(25, HIGH). Я, конечно, схемы не видел, но мне кажется, что пин column[25] и пин 25 - это две большие разницы для вашего куба. Ну и учтите, что нумерация массива в честном Си - с нуля, последний элемент - 24-й, а в 25-м хранится случайное (для вашего ожидания) число.
это последний вариант... в этом варианте горит полностью столбец
по разному пробовал прописывать... нифига не получается... или столбец загорается или вообще не горит...
вы правы в моем варианте счет от 0 до 24
это последний вариант... в этом варианте горит полностью столбец
по разному пробовал прописывать... нифига не получается... или столбец загорается или вообще не горит...
Вот вы сейчас, выражаясь понятными терминами, при ремонте заменили двухногую деталь на первую попавшуюся трехногую, откусив лишний вывод.
Сделайте Serial.println(A4) - результат вас удивит.
по разному пробовал прописывать... нифига не получается... или столбец загорается или вообще не горит...
Так не надо всякий бред "по разному пробовать", надо написать правильно. Уже несколько раз повторили, что на один вывод HIGH, на другой LOW, а у Вас опять две единицы написаны. Напишите правильно, и если при этом получаете не то, что нужно, разбирайтесь с подключением - значит там ошибка.
Сделайте Serial.println(A4) - результат вас удивит.
не удивило... все так же загорается 24 столбик вместо 24 светодиода в ряду А4
все делал согласно примера по Serial.println,
смущает в примере analogValue = analogRead (0); - в примере указано, что этосчитываются данные с входа, а у нас выход...
что опять неправильно сделал? указал, что analogvalue =0, считываем показания с выхода (или входа???) - 0, выводим
serial.println...