ну что, гайвер спер идею и сделал Наливатор, что будете делать? сворачивать проект?
Тем более что нельзя не признать, по исполнению у него просто шикарно получилось... складной, переносной, в аккуратной коробочке
хотя я и не поклонник его творчества.
Да , это просто горе какое-то. В фикспрайсах не осталось не одной зеленой коробки с отвертками и ни одной разделочной доски , видимо все ушли на наливаторы :( Остались только синие , но из них делать нельзя , незаработает по определению. Остается только одно , закрыть проект и пойти бухать с детСименом и его котом.
По оформлению девайса гайвера:" Из г@вна и палок хорошо получаются только две вещи, первая - г@вно утыканное палками и второе - палки измазанные г@вном." А идея чемоданчика хорошая. Но мои моноблоки лучше на столе смотрятся.
смысл ардуино творчества - идея и код. А коробочка - дело десятое, можно и в картонку из-под конфет запихнуть, лишь бы работало
уважаемый это абсолютно два разные проекты. Этот для души у гайвера для того чтоб было, причём он сам этого не скрывает. Если вам не нравится, то вы можете не собирать проект который в этом сайте а взять гайверовский и не писать всякую ерундуи не боломутить воду
смысл ардуино творчества - идея и код. А коробочка - дело десятое, можно и в картонку из-под конфет запихнуть, лишь бы работало
Смысл любого творчества это конечный результат. И не важно , на чем это собрано схемотехнически , на ардуино или на голой атмеги или еще на чемто другом. Если вы запихнете крутую начинку с супер мега кодом в коробку из под конфет , это будет коробка из под конфет , с крутой начинкой и супер мега кодом , и не больше.
Супер. Но может не хватает такого режима - установил рюмку и не нажимая на кнопку энкодера идёт сразу наполнение
Я категорически против такого режима. Нетрезвые люди в процессе употребления могут случайно кусок колбасы на концевик уронить, ну или еще чего-нибудь. Так что нажатие на энкодер это своего рода предохранитель от случайного пролива горячительной жидкости.
Супер. Но может не хватает такого режима - установил рюмку и не нажимая на кнопку энкодера идёт сразу наполнение
Я категорически против такого режима. Нетрезвые люди в процессе употребления могут случайно кусок колбасы на концевик уронить, ну или еще чего-нибудь. Так что нажатие на энкодер это своего рода предохранитель от случайного пролива горячительной жидкости.
Супер. Но может не хватает такого режима - установил рюмку и не нажимая на кнопку энкодера идёт сразу наполнение
Я категорически против такого режима. Нетрезвые люди в процессе употребления могут случайно кусок колбасы на концевик уронить, ну или еще чего-нибудь. Так что нажатие на энкодер это своего рода предохранитель от случайного пролива горячительной жидкости.
ВОООТТ!
а если на рюмочках магниты...
Палка о двух концах . Мне не нравиться любая хрень , наклеенная на дно рюмок. Поэтому мой наливатор будет на концевиках. Однако мой товарищ тоже за магниты , поэтому я буду делать ему в варианте с магнитами
парни, у меня вопрос, кто может на заказ изготовить корпус, только корпус и серва с гусаком, на шесть рюмок, дырки никакие не нужны, это я доделаю сам. электроника тоже сам.
хочу товарищу на Н.Г. презентовать (да и себе еще один), но понимаю, что сам не сделаю. не умею, не охота, да и некогда.
пишите на xDriverForums@yandex.ru, обсудим ЛЮБЫЕ предложения (Москва), оплата достойная.
Идея с концевиками идеальна, буду на них делать. Блин а я уже инфрокрасные датчики купил, хотел пять штук купить а прислали 25шт. Не заметил когда оформлял, что в упаковке 5шт. Вот куда их теперь девать, проектов с таким количеством датчиков то и нет. А корпус удобнее в 3Dmaxe наваять и на 3d принтере напечатать, если принтера нет то заказать печать у кого есть принтер.
А корпус удобнее в 3Dmaxe наваять и на 3d принтере напечатать, если принтера нет то заказать печать у кого есть принтер.
Разве только элементы корпуса. У меня вот принтер не маленький и то область печати 200*150, а нормальная печать вообще там 170*120 максимум. Да и обрабатывать после принтера непросто - шкурить, ацетоновая ванна, грунтовка, покраска, а то слои будут видны, это не очень красиво.
Я вот думаю в новой модели из оргстекла заказать, есть у нас в Питере контора которая в размер режет и нужной формы гнет: http://www.anteyplex.ru/
ну что, гайвер спер идею и сделал Наливатор, что будете делать? сворачивать проект?
Тем более что нельзя не признать, по исполнению у него просто шикарно получилось... складной, переносной, в аккуратной коробочке
хотя я и не поклонник его творчества.
Да , это просто горе какое-то. В фикспрайсах не осталось не одной зеленой коробки с отвертками и ни одной разделочной доски , видимо все ушли на наливаторы :( Остались только синие , но из них делать нельзя , незаработает по определению. Остается только одно , закрыть проект и пойти бухать с детСименом и его котом.
смысл ардуино творчества - идея и код. А коробочка - дело десятое, можно и в картонку из-под конфет запихнуть, лишь бы работало
По оформлению девайса гайвера:" Из г@вна и палок хорошо получаются только две вещи, первая - г@вно утыканное палками и второе - палки измазанные г@вном." А идея чемоданчика хорошая. Но мои моноблоки лучше на столе смотрятся.
смысл ардуино творчества - идея и код. А коробочка - дело десятое, можно и в картонку из-под конфет запихнуть, лишь бы работало
уважаемый это абсолютно два разные проекты. Этот для души у гайвера для того чтоб было, причём он сам этого не скрывает. Если вам не нравится, то вы можете не собирать проект который в этом сайте а взять гайверовский и не писать всякую ерундуи не боломутить воду
Красота!
смысл ардуино творчества - идея и код. А коробочка - дело десятое, можно и в картонку из-под конфет запихнуть, лишь бы работало
Смысл любого творчества это конечный результат. И не важно , на чем это собрано схемотехнически , на ардуино или на голой атмеги или еще на чемто другом. Если вы запихнете крутую начинку с супер мега кодом в коробку из под конфет , это будет коробка из под конфет , с крутой начинкой и супер мега кодом , и не больше.
ну что, гайвер спер идею и сделал Наливатор, что будете делать? сворачивать проект?
зачем вентилятор включаешь, тут мужики пьющие, морально устойчивые.
Тем более что нельзя не признать, по исполнению у него просто шикарно получилось... складной, переносной, в аккуратной коробочке
я надеюсь просто забыл поставить смайлик.
хотя я и не поклонник его творчества.
не, теория и подача нормально, но вот исполнение...
И еще один на подходе
сорри, последний вброс, потом правда уйду...
Мужики. вы правда считаете. что эти вот фанерные ящики с непременным выжженным пунктиром по краям - лучше коробки Гайвера???
Ухожу
сорри, последний вброс, потом правда уйду...
Мужики. вы правда считаете. что эти вот фанерные ящики с непременным выжженным пунктиром по краям - лучше коробки Гайвера???
Ухожу
Стоять. Я еще не показал свой вариант с банкой из под иваси. Только употребить ее сперва надо. Под водочку.
Стоять. Я еще не показал свой вариант с банкой из под иваси. Только употребить ее сперва надо. Под водочку.
о, это стоит того, чтоб остаться. Я, честно - тоже умею ценить прекрасное... :)
Если это тут уже было, то сорри! Если нет - посмотрите, красиво:
Робобар
Наливай-ка!
Да и вобще у товарища там много чего интересного Валерий Афанасьев
Если это тут уже было, то сорри! Если нет - посмотрите, красиво:
Робобар
Наливай-ка!
Да и вобще у товарища там много чего интересного Валерий Афанасьев
У гувера круче , чо , зеленый почти чемодан , да еще с красной кнопкой . Практически как тактический чемодан нашего презердента.
Если это тут уже было, то сорри! Если нет - посмотрите, красиво:
Робобар
Наливай-ка!
Да и вобще у товарища там много чего интересного Валерий Афанасьев
да, вот это - ТВОРЧЕСТВО :)))
да, вот это - ТВОРЧЕСТВО :)))
Патамушта не на ардуино ?
и мне если можно spaer2010@gmail.com
и мне если можно spaer2010@gmail.com
Банку из под иваси ? Я ее еще не доел (
Пишите почту,скину нарезку мр3
И мне пожалуйста, aleks_raichel@mail.ru
spaer2010@gmail.com мне тоже
Скиньте нарезку rigikov08@gmail.com
Выложил видос, новый режим разлива рюмок
В принципе можно только его и оставить, при таком режиме авторежим, который наливает одинаковое кол-во во все рюмки не нужен.
Супер. Но может не хватает такого режима - установил рюмку и не нажимая на кнопку энкодера идёт сразу наполнение
Я категорически против такого режима. Нетрезвые люди в процессе употребления могут случайно кусок колбасы на концевик уронить, ну или еще чего-нибудь. Так что нажатие на энкодер это своего рода предохранитель от случайного пролива горячительной жидкости.
Ну если так рассматривать, то конечно
Я категорически против такого режима. Нетрезвые люди в процессе употребления могут случайно кусок колбасы на концевик уронить, ну или еще чего-нибудь. Так что нажатие на энкодер это своего рода предохранитель от случайного пролива горячительной жидкости.
ВОООТТ!
а если на рюмочках магниты...
Я категорически против такого режима. Нетрезвые люди в процессе употребления могут случайно кусок колбасы на концевик уронить, ну или еще чего-нибудь. Так что нажатие на энкодер это своего рода предохранитель от случайного пролива горячительной жидкости.
ВОООТТ!
а если на рюмочках магниты...
Палка о двух концах . Мне не нравиться любая хрень , наклеенная на дно рюмок. Поэтому мой наливатор будет на концевиках. Однако мой товарищ тоже за магниты , поэтому я буду делать ему в варианте с магнитами
ну хорошо, мысль была хорошая (по поводу поставили - налил)
можно указать кол-во участников и как только рюмки оказались на местах, любых, и кол-во совпало, наливаем.
тут еще один плюс, один "отвалился" и остальным хорош :)
парни, у меня вопрос, кто может на заказ изготовить корпус, только корпус и серва с гусаком, на шесть рюмок, дырки никакие не нужны, это я доделаю сам. электроника тоже сам.
хочу товарищу на Н.Г. презентовать (да и себе еще один), но понимаю, что сам не сделаю. не умею, не охота, да и некогда.
пишите на xDriverForums@yandex.ru, обсудим ЛЮБЫЕ предложения (Москва), оплата достойная.
не, запустят новый - автоматический нарезатор закуски
Концевики! Не вся тара имеет выпуклость на дне.
Так подключать концевик?
Так подключать концевик?
Так подключать концевик?
Так, белый - +5В,зеленый - выход, черный - земля/общий. можешь смело резистор к НЗ контакту микрика подключить чтоб не болтался,хуже не будет.
А в прошивке надо что-то под них менять. т.к. я видел параметры под них
http://arduino.ru/forum/proekty/nalivator-avtomatizirovannaya-mashina-kotoraya-budet-razlivat-alkogol-po-stopkam?page=14#comment-485165
Идея с концевиками идеальна, буду на них делать. Блин а я уже инфрокрасные датчики купил, хотел пять штук купить а прислали 25шт. Не заметил когда оформлял, что в упаковке 5шт. Вот куда их теперь девать, проектов с таким количеством датчиков то и нет. А корпус удобнее в 3Dmaxe наваять и на 3d принтере напечатать, если принтера нет то заказать печать у кого есть принтер.
Выложил видос, новый режим разлива рюмок
В принципе можно только его и оставить, при таком режиме авторежим, который наливает одинаковое кол-во во все рюмки не нужен.
Привет, скетчем поделись.
#include #include #include "Adafruit_NeoPixel.h" OLED myOLED(SDA, SCL, 8); //Подключение экрана А4, А5 extern uint8_t MegaNumbers[]; extern uint8_t RusFont[]; extern uint8_t SmallFont[]; unsigned long currentTime; unsigned long loopTime; unsigned long ledTime; // Переменные для энкодера ----------- const int pin_A = 2; // Подключение вывода A (CLK) энкодера const int pin_B = 3; // Подключение вывода B (DT) энкодера const int pin_SW = 4; // Подключение вывода кнопки (SW) энкодера unsigned char encoder_A; unsigned char encoder_B; unsigned char encoder_A_prev = 0; unsigned char encoder_sw_prew = 1; //Массив , обозначаем подключенные оптопары по выводам . Оптопары подключены, A0,A1,A2,A3,A6 const byte Optics[] = {0, 1, 2, 3, 6}; // Значения порога срабатывания датчика для каждой рюмки const unsigned int Optics_porog[] = {1000,1000,1000,1000,1000}; //Серво const int PIN_SERVO = 9; Servo servo; //Позиция каждой рюмки const byte Rumka_pos[] = {0,40,75,105,140}; //------------------------- byte Menu = 0; byte MenuFlag = 0; // Здесь храниться уровень меню. 0 находимся в Главном меню. 1 Вошли в меню Авто, 2 вошли в Ручное управление byte Drink = 25; // По умолчанию в рюмку наливаем 20 мл. //----- Минимальные и максимальные значения наполняемой жидкости и задержки для наполнения. const byte min_Drink = 2; // Минимум в рюмку - 2 мл. const byte max_Drink = 50; // Максимум в рюмку - 50 мл. // Калибровка работы насосика. Значения для налива min_Drink и max_Drink соотвественно const unsigned int min_Drink_delay = 300; const unsigned int max_Drink_delay = 4000; //-------- byte DrinkCount = 1; //По умолчанию, для ручного режима - 1 рюмка const byte max_DrinkCount = 5; //Максимальное кол-во рюмок - 5 // Насосик const byte PIN_PUMP = 12; // Светодиоды const int PIN_LED = 5;// Сюда подключаются светодиоды const int LED_COUNT = max_DrinkCount; Adafruit_NeoPixel strip = Adafruit_NeoPixel(LED_COUNT, PIN_LED, NEO_GRB + NEO_KHZ800); //------- void pump_enable() { digitalWrite(PIN_PUMP, 1); } void pump_disable() { digitalWrite(PIN_PUMP, 0); } void pump_timer(byte Drink) { digitalWrite(PIN_PUMP, 1); delay(map(Drink, min_Drink, max_Drink, min_Drink_delay, max_Drink_delay)); digitalWrite(PIN_PUMP, 0); } void oled_menu(int Menu) { myOLED.clrScr(); myOLED.setFont(RusFont); myOLED.print(F("Y F K B D F N J H"), CENTER, 0); myOLED.print(F("F D N J"), CENTER, 15); myOLED.print(F("H E X Y J Q "), CENTER, 30); myOLED.print(F("G H J V S D R F"), CENTER, 45); myOLED.setFont(SmallFont); myOLED.print(F(">"), LEFT, (Menu * 15) + 15); myOLED.print(F("<"), RIGHT, (Menu * 15) + 15); myOLED.update(); } // выводит строчку по чуть чуть, в самый раз и тд. Передается номер строки, на которой выводить сообщение void DrinkInfo(byte pos) { if (Drink < 15) { myOLED.print(F("YB J XTV"), CENTER, pos); } else if (Drink < 28) { myOLED.print(F("GJ XENM - XENM"), CENTER, pos); } else if (Drink < 38) { myOLED.print(F("D CFVSQ HFP"), CENTER, pos); } else if (Drink < 48) { myOLED.print(F("GJ GJKYJQ"), CENTER, pos); } else { myOLED.print(F("LJ RHFTD"), CENTER, pos); } } void Tost() { randomSeed(currentTime); myOLED.clrScr(); myOLED.setFont(RusFont); myOLED.print(F("DSGMTV"), CENTER, 20); //Выпьем // Рандом - 1 switch (random(11)) { case 0: myOLED.print(F("PF LHEPTQ!"), CENTER, 40); //За друзей break; case 1: myOLED.print(F("PF VBKS{ LFV!"), CENTER, 40); //За милых дам break; case 2: myOLED.print(F("PF PLJHJDMT!"), CENTER, 40); //За здоровье break; case 3: myOLED.print(F("PF ELFXE!"), CENTER, 40); //За удачу break; case 4: myOLED.print(F("PF VBH DJ DCTV VBHT!"), CENTER, 40); //За мир во всем мире break; case 5: myOLED.print(F("PF NT{ RNJ D VJHT!"), CENTER, 40); //За тех кто в море break; case 6: myOLED.print(F("PF K>V"), 24, 27); myOLED.print(F("VK "), RIGHT, 27); myOLED.setFont(MegaNumbers); myOLED.print(String(DrinkCount), LEFT, 13); myOLED.print(String(Drink), (Drink < 10) ? 80 : 57, 13); myOLED.update(); } void oled_naliv(int MenuFlag) { myOLED.clrScr(); myOLED.setFont(RusFont); myOLED.print((MenuFlag == 1) ? F("F D N J") : F("H E X Y J Q") , CENTER, 0); myOLED.print(F("Y F K B D F > "), CENTER, 27); DrinkInfo(47); myOLED.update(); } void oled_nalito(int MenuFlag, int Nalito) { myOLED.clrScr(); myOLED.setFont(RusFont); myOLED.print((MenuFlag == 1) ? F("F D N J") : F("H E X Y J Q") , CENTER, 0); myOLED.print(F("Y F K B N J"), CENTER, 20); if (Nalito == 1) { myOLED.print(F("H > V R F"), CENTER, 55); } else if (Nalito <= 4 ) { myOLED.print(F("H > V R B"), CENTER, 55); } else { myOLED.print(F("H > V J R"), CENTER, 55); } myOLED.setFont(SmallFont); myOLED.print(String(Nalito), CENTER, 36); myOLED.update(); } void ServoNaliv(byte rumka) { servo.attach(PIN_SERVO); for (int pos = servo.read(); pos <= Rumka_pos[rumka]; pos += 1) { // с шагом в 1 градус servo.write(pos); // даем серве команду повернуться в положение, которое задается в переменной 'pos' delay(10); // ждем 15 миллисекунд, пока ротор сервы выйдет в заданную позицию } servo.detach(); } void ServoParking () { //Serial.println(servo.read()); servo.attach(PIN_SERVO); for (int pos = servo.read(); pos >= 0; pos -= 1) { // с шагом в 1 градус servo.write(pos); // даем серве команду повернуться в положение, которое задается в переменной 'pos' delay(10); // ждем 15 миллисекунд, пока ротор сервы выйдет в заданную позицию } servo.detach(); } void CvetoMuzik() { for (int i = 0; i <= 7; i++) { for (int y = 0; y < max_DrinkCount; y++) { strip.setPixelColor(y, strip.Color(255, 0, 0)); strip.show(); delay(30); } for (int y = 0; y < max_DrinkCount; y++) { strip.setPixelColor(y, strip.Color(0, 255, 0)); strip.show(); delay(30); } for (int y = 0; y < max_DrinkCount; y++) { strip.setPixelColor(y, strip.Color(0, 0, 255)); strip.show(); delay(30); } } } void setup() { //Serial.begin(9600); // servo.attach(PIN_SERVO); pinMode(pin_SW, INPUT); // устанавливаем pin pin_SW как вход digitalWrite(pin_SW, HIGH); // Поддяжка вывода к 1 pinMode(pin_A, INPUT); pinMode(pin_B, INPUT); pinMode(PIN_PUMP, OUTPUT); digitalWrite(PIN_PUMP, 0); currentTime = millis(); loopTime = currentTime; // Volume=EEPROM.read(0); myOLED.begin(); oled_menu(0); strip.begin(); for (int i = 0; i < 5; i++) { pinMode(Optics[i], INPUT); } ServoParking(); } void loop() { currentTime = millis(); if (currentTime >= (loopTime + 5)) { // проверяем каждые 5мс // int val = analogRead(0); // считываем значение // Serial.println(val); encoder_A = digitalRead(pin_A); // считываем состояние выхода А энкодера encoder_B = digitalRead(pin_B); // считываем состояние выхода B энкодера if ((!encoder_A) && (encoder_A_prev)) { // если состояние изменилось с положительного к нулю //Вращение влево if (encoder_B) { if (MenuFlag == 0) { (Menu <= 0 ) ? Menu = 2 : Menu--; // Перемещение курсора по главному меню назад oled_menu(Menu); } else if (MenuFlag == 1) { (Drink <= min_Drink ) ? Drink = max_Drink : Drink--; // Уменьшаем кол-во милилитров в рюмку oled_auto(Drink); } else if (MenuFlag == 2) { (DrinkCount >= max_DrinkCount ) ? DrinkCount = 1 : DrinkCount++; // Влево увечичиваем рюмки для ручного режима oled_manual(DrinkCount, Drink); } //Вращение вправо } else { if (MenuFlag == 0) { (Menu >= 2 ) ? Menu = 0 : Menu++; // Перемещение курсора по главному меню вперед. oled_menu(Menu); } else if (MenuFlag == 1) { (Drink >= max_Drink ) ? Drink = min_Drink : Drink++; oled_auto(Drink); } else if (MenuFlag == 2) { (Drink >= max_Drink ) ? Drink = min_Drink : Drink++; oled_manual(DrinkCount, Drink); } } } encoder_A_prev = encoder_A; // сохраняем значение А для следующего цикла int encoder_sw = digitalRead(pin_SW); if (encoder_sw == 0 && encoder_sw != encoder_sw_prew) { // Нажата кнопка int pause_sw = 0; boolean promivka = false; while (digitalRead(pin_SW) == 0) { // Держим кнопку. Считаем сколько времени прошло... delay(100); pause_sw++; if (pause_sw > 20 && Menu != 2 ) break; if (pause_sw > 20 && Menu == 2 && promivka == false) { // Если пункт меню промывка и держим кнопку больше 2 секунд. promivka = true; pump_enable(); // Включаем насос myOLED.clrScr(); myOLED.setFont(RusFont); myOLED.print(F("G H J V S D R F"), CENTER, 15); myOLED.print(F(". . ."), CENTER, 45); myOLED.update(); } } //После отпускания кнопки , обрабатываем if (promivka == true) { //Отпустили кнопку. Если включена промывка, выключаем насос и возвращаемся в главное меню promivka = false; pump_disable() ; //Выключаем насос oled_menu(2); } else { //Обработка всех нажатий кнопки if (Menu == 0 && MenuFlag == 0 && pause_sw < 10) { //Нажатие кнопки меню авто MenuFlag = 1; oled_auto(Drink); } else if (MenuFlag == 1 && pause_sw > 20) { //Выход из меню авто в главное MenuFlag = 0; oled_menu(0); } else if (MenuFlag == 1 ) { //Начинается автоматический разлив Serial.println("Начало автоматического разлива"); oled_naliv(MenuFlag); // Выводим на экран наливаем ... byte drink_count = 0; for (int y = 0; y < max_DrinkCount; y++) { if (analogRead(Optics[y]) > Optics_porog[y] ) { strip.setPixelColor(y, strip.Color(255, 0, 0)); // Подствечиваем красным цветом strip.show(); ServoNaliv(y); // Перемещяемся к рюмке pump_timer(Drink); // Налив. strip.setPixelColor(y, strip.Color(0, 255, 0)); // Подствечиваем зеленым , налито. strip.show(); drink_count++; } } if (drink_count > 0) { oled_nalito(MenuFlag, drink_count ); ServoParking(); delay(1000); Tost(); CvetoMuzik(); oled_auto(Drink); } else { myOLED.clrScr(); myOLED.setFont(RusFont); myOLED.print(F("YTN H>VJR !"), CENTER, 25); myOLED.update(); delay(2000); oled_auto(Drink); } } else if (Menu == 1 && MenuFlag == 0 && pause_sw < 10) { // Нажатие меню ручное MenuFlag = 2; oled_manual(DrinkCount, Drink); } else if (MenuFlag == 2 && pause_sw > 20) { //Выход из меню ручное в главное MenuFlag = 0; oled_menu(1); } else if (MenuFlag == 2 ) { //Начинается ручной разлив // Serial.println("Начало ручного разлива " + String(DrinkCount)); oled_naliv(MenuFlag); // Выводим на экран наливаем ... for (int y = 0; y < DrinkCount; y++) { strip.setPixelColor(y, strip.Color(255, 0, 0)); // Подствечиваем красным цветом strip.show(); ServoNaliv(y); // Перемещяемся к рюмке pump_timer(Drink); // Налив. strip.setPixelColor(y, strip.Color(0, 255, 0)); // Подствечиваем зеленым , налито. strip.show(); } oled_nalito(MenuFlag, DrinkCount ); ServoParking(); Tost(); CvetoMuzik(); oled_manual(DrinkCount, Drink); } } } if (currentTime >= (ledTime + 300)) { //Опрашиваем оптопары ... Если рюмка поставлена , светодиод светится синим, нет ничего - не светится for (int i = 0; i < max_DrinkCount; i++) { int val = analogRead(Optics[i]); // считываем значение Serial.println(val); if (val > Optics_porog[i]) { strip.setPixelColor(i, strip.Color(0, 0, 255)); } else { strip.setPixelColor(i, strip.Color(0, 0, 0)); } // delay(20); } strip.show(); ledTime = currentTime; } encoder_sw_prew = encoder_sw; loopTime = currentTime; } }А почему 300? От чего это зависит
От сопротивления.
Выходит, если не подключать концевики то сервопривод не должен вообще вращаться. Типо нет рюмок.
А корпус удобнее в 3Dmaxe наваять и на 3d принтере напечатать, если принтера нет то заказать печать у кого есть принтер.
Разве только элементы корпуса. У меня вот принтер не маленький и то область печати 200*150, а нормальная печать вообще там 170*120 максимум. Да и обрабатывать после принтера непросто - шкурить, ацетоновая ванна, грунтовка, покраска, а то слои будут видны, это не очень красиво.
Я вот думаю в новой модели из оргстекла заказать, есть у нас в Питере контора которая в размер режет и нужной формы гнет: http://www.anteyplex.ru/
Но не дешево....
Вот такие датчики. управляющий к d0 работает в инверсии. К a0 вообще не реагирует.
на d0 при срабатывании 0 небось, в обычном состоянии 1.
Попробуй поменять
int val = analogRead(Optics[i]); // считываем значение Serial.println(val); if (val > Optics_porog[i]) { strip.setPixelColor(i, strip.Color(0, 0, 255)); } else { strip.setPixelColor(i, strip.Color(0, 0, 0)); }на это
int val = analogRead(Optics[i]); // считываем значение Serial.println(val); if (val == 0 ) { strip.setPixelColor(i, strip.Color(0, 0, 255)); } else { strip.setPixelColor(i, strip.Color(0, 0, 0)); }ни чего не изменилось
Поменял. Изменений нет
Проверь датчики скетчем serial_print_tab на Ядиске есть.
Подскажи пожалуйста датчики обязательно все должны быть подключены или можно один накинуть для проверки?
Можно по одному, тогда закоментируй остальные аналоговые входа чтобы не запутаться.
А если вообще не подключать их. Как должен реагировать скетч? У меня сервопривод все равно вращается