не проходит компилирование

conder
Offline
Зарегистрирован: 20.01.2014

сижу неделю и не могу продвинуться, хотел повторить Инкубатор под управлением Ардуино УНО, автор tamerlan37 .  Но при компиляции программы зависаю на строке 15 
DHTdht(DHTPIN, DHTTYPE); не могу понять в чем ошибка, пробовал и другие программы схожие, результат тот же. 

 

int led2 = 4;//  "таймер переворот"
int led3 = 2;// нагреватель 
int led4 = 5;//туманогенератор
#include <DS1307RTC.h>
#include <Time.h>
#include <Wire.h>
#include <LiquidCrystal.h>
#include "DHT.h"
   
#define DHTPIN 3 // куда подключен термодатчик

#define DHTTYPE DHT11   // DHT 11 используемый термодатчик
//#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)
DHT dht(DHTPIN, DHTTYPE);

LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
void setup() {
  Serial.begin(9600);
  dht.begin();
  while (!Serial) ; // wait for serial
  delay(200);
  pinMode(led2, OUTPUT);// сигнал "таймер"
  pinMode(led3, OUTPUT);// сигнал нагрева 
  pinMode(led4,OUTPUT);//сигнал туманогенератора
  Serial.println("DS1307RTC Read Test");
  Serial.println("-------------------");
lcd.begin(16, 2);
  // печатаем первую строку
  lcd.print("Inkubator" );
 lcd.setCursor(1, 1);
 delay(500);
  // печатаем вторую строку
  lcd.print("tamerlan-1");
  delay(500);
}


void loop() {
  
   float h = dht.readHumidity();//обозначение влажности
  float t = dht.readTemperature(); //обозначение температуры


  tmElements_t tm; //вывод на экран дата и влажность
  {lcd.setCursor(0, 1);
  print2digits(tm.Day);
  lcd.write('/');
  print2digits(tm.Month);
  lcd.write('/');
  lcd.print(tmYearToCalendar(tm.Year));
  lcd.write('h');
  print2digits (h);
  lcd.write("*H ");
 lcd.setCursor(0, 0);//вывод на экран время и температура
 print2digits(tm.Hour);
  lcd.write(':');
  print2digits(tm.Minute);
  lcd.write('`');
  print2digits(tm.Second);
  
  lcd.write('t');
  print2digits (t);
  lcd.write("*C ");
}
  if (RTC.read(tm)) //информацыя в sereal monitor
  {
    Serial.print("Ok, Time = ");
    Serial.print(tm.Hour);
    Serial.write(':');
    Serial.print(tm.Minute);
    Serial.write(':');
    Serial.print(tm.Second);
    Serial.print(", Date (D/M/Y) = ");
    Serial.print(tm.Day);
    Serial.write('/');
    Serial.print(tm.Month);
    Serial.write('/');
    Serial.print(tmYearToCalendar(tm.Year));
    Serial.println();
  } else {
    if (RTC.chipPresent()) {
      Serial.println("The DS1307 is stopped.  Please run the SetTime");
      Serial.println("example to initialize the time and begin running.");
      Serial.println();
    } else {
      Serial.println("DS1307 read error!  Please check the circuitry.");
      Serial.println();
    }
    delay(900);
  }
  delay(500);
  
 if ((tm.Second)>58) //условия таймера
 {
 digitalWrite(led2, HIGH);//включает таймер
 Serial.print("Taimer On!!   ");//вывод инфо состояния 
 lcd.setCursor(13, 0);//вывод инфо состояния на LCD
 lcd.print("%");
 }
 else
 {
 digitalWrite(led2, LOW);
 Serial.print("Taimer OFF");
 }
 if (t<17)//условия терморегуляции
 {
 digitalWrite(led3,HIGH);
 Serial.print("Vkluchen nagrev!!");//вывод инфо состояния
 lcd.setCursor(15, 0);
 lcd.print("^");//вывод инфо состояния на LCD
 //delay (500);
 }
 else
 { digitalWrite(led3,LOW);
 Serial.print("Temp ok  ");//вывод инфо состояния
 lcd.setCursor(15, 0);
 lcd.print("~");//вывод инфо на LCD
 }
 
 if (h<60)//условия терморегуляции
 {
 digitalWrite(led4,HIGH);
 Serial.print("Vkluchen tuman!!");//вывод инфо состояния
 lcd.setCursor(14, 0);
 lcd.print("#");//вывод инфо состояния на LCD
 //delay (500);
 }
 else
 { digitalWrite(led4,LOW);
 Serial.print("Vlagnost ok  ");//вывод инфо состояния
 lcd.setCursor(14, 0);
 lcd.print("~");//вывод инфо состояния
 }
 
 
 
 
}

void print2digits(int number) {
  if (number >= 0 && number < 10) {
    lcd.write('0');
  }
  lcd.print(number);
}

 

MaksMS
Offline
Зарегистрирован: 11.03.2013

А какая ошибка должны сами догадаться ?

conder
Offline
Зарегистрирован: 20.01.2014

sketch_jan21a:15: error: 'DHT11' was not declared in this scope
sketch_jan21a.ino: In function 'void setup()':
sketch_jan21a:20: error: 'class DHT' has no member named 'begin'

Вот что пишет Ардуино.

 

step962
Offline
Зарегистрирован: 23.05.2011

А где находятся файлы DHT.h и DHT.cpp?

conder
Offline
Зарегистрирован: 20.01.2014

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

conder
Offline
Зарегистрирован: 20.01.2014

Да там в ковычках #include "DHT.h"  я на это обратил внимание и стирал эту строку и добавлял из библиотеки DHT.h  и 8 строка становилась  c правильными скобками < > но результат тот же.

MaksMS
Offline
Зарегистрирован: 11.03.2013

Пробуйте отдельно пример работы с датчиком запустить.

Если уж пробуйте разные библиотеки,то учитывайте ,что они по разному настраиваются

 

Вот библиотека удобнее http://homes-smart.ru/upload/arduino/DHTAUTO.zip с автоматическим определением датчиков

conder
Offline
Зарегистрирован: 20.01.2014

попробовал поставить, проблема та же самая. Взял другую программу  для пробы,тоже самое ругает строку №16 sketch_jan21a:16: error: 'DHT22' was not declared in this scope. вероятно копаю не там. Тест библиотеки  примеры DHT_test   нормально компилируеться.

#include <DHT.h> // Подключаем библиотеку для работы с датчиком
#include <DS1307.h> // Подключаем библиотеку управления модулем реального времени
#include <LiquidCrystalExt.h> // Подключаем библиотеку управления экраном
#include <LineDriver.h> // Далее вспомогательные библиотеки для реализации интерфейса SPI
#include <SPI.h>
#include <SPI_Bus.h>
#include <Wire.h>
 
#define DHTPIN 9 // Считывающий пин с датчика
#define DHTTYPE DHT22 // Модель датчика
#define tPIN 7 // Пин управления температурой
#define hPIN 6 // Пин управления влажностью
#define lPIN 5 // Пин управления светом
#define sdPIN 3 // Пин управления светодиодной лентой
 
DHT dht(DHTPIN, DHTTYPE); // Создаем объект dht
 
int tStatus = HIGH; // определяем переменную, отвечающую за состоянеие нагревателя HIGH=выкл, LOW=вкл
int tempDay = 28; // Желаемая дневная температура в градусах Цельсия
int tempNight = 25; // Желаемая ночная температура в градусах Цельсия
int hStatus = HIGH; // определяем переменную, отвечающую за состоянеие увлажнителя HIGH=выкл, LOW=вкл
int humDay = 45; // Желаемая дневная влажность
int humNight = 40; // Желаемая ночная влажность
 
SPI_Bus shreg(_8bit, 10); // Подключаем сдвиговый регистр
LiquidCrystal lcd(1, 2, 3, 4, 5, 6, &shreg, 7); // Инициализируем дисплей
 
void setup() // инициализация основных данных
{
Serial.begin(9600); // Инициализируем COM-порт
dht.begin(); // Инициализируем датчик
pinMode(tPIN, OUTPUT); // Определяем пин для управления температурой как Вывод
pinMode(hPIN, OUTPUT);
pinMode(lPIN, OUTPUT);
lcd.begin(16,2); // устанавливаем размеры экрана
//lcd.backlight(true); // Указываем использование подсветки экрана
}
 
void loop() // зацикливание (код управляющей программы)
{
if (Serial.available() > 0) SetTime(); // Если на COM-порт поступила информация, то изменим системное время
float h = dht.readHumidity(); // Считываем влажность
float t = dht.readTemperature(); // Считываем температуру
int Hour = RTC.get(DS1307_HR,true); // Получаем значение текущего часа
int Minute = RTC.get(DS1307_MIN,false);
int Second = RTC.get(DS1307_SEC,false);
boolean Day = (Hour >= 8 & Hour <20); // Если текущий час находится в промежутке от 8 до 20, то действуют дневные параметры
tStatus = (t < ((Day) ? tempDay : tempNight)) ? LOW:HIGH; // Если температура меньше желаемой, то статус обогревателя=Вкл, в противном случае Выкл
digitalWrite(tPIN, tStatus);
if (h < ((Day) ? humDay : humNight)) hStatus = LOW; else hStatus = HIGH; // Если влажность меньше желаемой, то статус увлажнителя=Вкл, в противном случае Выкл
digitalWrite(hPIN, hStatus);
digitalWrite(lPIN, (Day) ? LOW:HIGH); // Если дневное время, то включим подсветку
switch(Hour) // в зависимости от времени меняем яркость светодиодной ленты
{
case 7:analogWrite(sdPIN, map(Minute, 0, 59, 0, 255)); break;
case 20:analogWrite(sdPIN, map(Minute, 0, 59, 255, 0)); break;
default:analogWrite(sdPIN, (Day) ? 255:0);
}
lcd.setCursor(1,0); // устанавливаем позицию курсора на экране (на один символ правее левого верхнего угла)
lcd.print(t, 1); lcd.print("C "); lcd.print(h, 1); lcd.print("% "); // Выводим информацию о климате
lcd.setCursor(4,1); // устанавливаем курсор для вывода времени
lcd.print(addZero(Hour));lcd.print(":");lcd.print(addZero(Minute));lcd.print(":");lcd.println(addZero(Second)+ " "); // Выводим время
lcd.setCursor(1,1);lcd.print((tStatus == LOW) ? "+":" "); // Выводим индикатор работы подогрева
lcd.setCursor(13,1);lcd.print((hStatus == LOW) ? "+":" "); // Выводим индикатор работы увлажнения
delay(500); // Задержка в пол секунды
}
 
void SetTime() // установка времени из шаблона tчч:мм
{
if (Serial.read() == 't') // Если первый символ t, то установим указанное время
{
int h = (Serial.read() - '0') * 10 + (Serial.read() - '0');
Serial.read();
int m = (Serial.read() - '0') * 10 + (Serial.read() - '0');
RTC.stop();
RTC.set(DS1307_SEC,0); //set the seconds
RTC.set(DS1307_MIN,m); //set the minutes
RTC.set(DS1307_HR,h); //set the hours
RTC.start();
}
Serial.flush();
}
 
String addZero(int val)
{
if (val<10) return "0" + String(val);else return String(val);
} 

 

conder
Offline
Зарегистрирован: 20.01.2014

нашел другую библиотеку DHT и сдвинулось с места , уперся в строку  DHT .begin();   напечатал маленькими буквами  dht.begin(); и тут прошло. дальше голову ломаю.

ites
Offline
Зарегистрирован: 26.12.2013

conder пишет:

нашел другую библиотеку DHT и сдвинулось с места , уперся в строку  DHT .begin();   напечатал маленькими буквами  dht.begin(); и тут прошло. дальше голову ломаю.

Программирование как головоломка, ничего не поделать...

conder
Offline
Зарегистрирован: 20.01.2014

Трудно на ощупь, когда образования не хватает, вот и парюсь. Буду дальше осваивать науку программирования. Чем больше понимаю, тем больше убеждаюсь , что ничего не понимаю!

igorek9191
Offline
Зарегистрирован: 22.05.2014

Здравствуйте люди. Собираю светодиодный куб 4х4х4 на Arduino Nano. Файл программы написан на Си, скачан со страницы проекта куба. Пытаюсь компилировать его через WinAVR как в этой статье http://robocraft.ru/blog/arduino/116.html Пути прописал, но компиляция не проходит, видно на картинке. Может быть пути как то не так прописал..?

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Скорей всего путь к файлу make.exe у Вас в переменной среды path отсутствует, потому при запуске make all, система сборки его не находит.

igorek9191
Offline
Зарегистрирован: 22.05.2014

Помогите пожалуйста разобраться. Я не программист. Как было сказано выше собираю светодиодный куб. 
Насчет прописывания путей к файлу make.exe: изначально у меня нету папки c:\utils\. Я прописал пути так
D:\Program Files\Arduino\hardware\tools\avr\utils\bin;
D:\Program Files\Arduino\hardware\tools\avr\bin;
D:\Program Files\Arduino\hardware\tools\avr\avr\bin

Компиляция прошла с множеством ошибок. Картинка.

 

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

В проекте WinAvr, а пути к ардуино компилятору. Нужно использовать winavr компилятор.

art100
Offline
Зарегистрирован: 09.03.2014

плохая идея от Microsoft

D:\Program Files\Arduino\hardware\tools\avr\utils\bin;
D:\Program Files\Arduino\hardware\tools\avr\bin;
D:\Program Files\Arduino\hardware\tools\avr\avr\bin

сколько копий об этот пробел в строке поломали

все грамотные разработчики мира правильно распологают с путями где нет запрещенных символов пробелы дебило знаки восклицания и остальная спец хрень управления, а только латиница и цифры

кроме того Java программисты не разрешают 1-ым символом писать цифры что очень логично

просто тупо скопируйте весь каталог arduino в корень

правильный путь такой

C:\Arduino\

 

и у вас 90% косяков с путями изчезнет

достаточно просто скопировать и работать от правильного корня

это не ваша и не ардуиноводов косяк это косяк от Microsoft

попрограммируете не только на Windows сразу будуте видеть

насколько я вижу вызов должен будет получиться у вас такой

d:\одна команда !!! передает результат Files\Arduino\...avr-gcc с ключами 

дибилизм

ну и с явами надеюсь у вас от корня типа c:\jdk170

хотя вы мало дали информации

какая операционка

то что мелкомягкие компилятор arduino загнали в дурко путь это я вижу

с WinAVR-ом я тоже не помню проблем ставишь относительно корня и все

рабочие папки тоже не дебильные типа c:\document пробел and пробел 

короче смотри правильный корень

 Том в устройстве C не имеет метки.
 Серийный номер тома: 445A-D10C
 
 Содержимое папки C:\
 
31.05.2014  10:53                 0 1.txt
29.05.2014  23:50    <DIR>          1cBase
16.05.2014  16:52    <DIR>          ADK2012_IDE
24.03.2014  10:24    <DIR>          androidsourseunsorted
30.05.2014  01:35    <DIR>          Arduino
29.05.2014  22:34    <DIR>          Arduino.old
10.06.2009  23:42                24 autoexec.bat
10.06.2009  23:42                10 config.sys
24.03.2014  10:39    <DIR>          cygwin
16.05.2014  22:03    <DIR>          eclipse
13.05.2014  21:43               220 extensions.ini
29.04.2014  18:57    <DIR>          FabScan
28.03.2014  08:31    <DIR>          hyperterminalxp
15.11.2013  13:59    <DIR>          jdk170
15.11.2013  13:59    <DIR>          jre170
25.05.2014  19:07           134 603 KC_Program_Wire_Data.csv
25.05.2014  18:43    <DIR>          Mach3
30.05.2014  00:23    <DIR>          Program Files
14.11.2013  17:47    <DIR>          RADStudio12
30.05.2014  11:35           399 532 referenciarapidaarduino.jpg
30.05.2014  21:36    <DIR>          temp
16.05.2014  18:14         5 603 961 Tree.Far
14.11.2013  09:12    <DIR>          Users
25.05.2014  19:01    <DIR>          Windows
18.05.2014  13:27    <DIR>          workandroid
30.05.2014  22:52    <DIR>          workarduino
               7 файлов      6 138 350 байт
              19 папок   2 660 868 096 байт свободно
 

 

 

 

Клапауций
Offline
Зарегистрирован: 10.02.2013

art100 пишет:

плохая идея от Microsoft

D:\Program Files\Arduino\hardware\tools\avr\utils\bin;

думал, что это проблема времён windows 98 -  с какого будуна у меня путь D:\Program Files mini\arduino-1.0.5 работает?

поделись, как добиться плохиг идей майкрософт?

art100
Offline
Зарегистрирован: 09.03.2014

Клапауций пишет:

art100 пишет:

плохая идея от Microsoft

D:\Program Files\Arduino\hardware\tools\avr\utils\bin;

думал, что это проблема времён windows 98 -  с какого будуна у меня путь D:\Program Files mini\arduino-1.0.5 работает?

поделись, как добиться плохиг идей майкрософт?

попрограммируй на НЕ Windows поймешь почему у тебя работает

Клапауций
Offline
Зарегистрирован: 10.02.2013

art100 пишет:

попрограммируй на НЕ Windows поймешь почему у тебя работает

на калькуляторе или на деревянных счётах?

о чём вообще речь?

art100
Offline
Зарегистрирован: 09.03.2014

на перфокартах

Puhlyaviy
Puhlyaviy аватар
Offline
Зарегистрирован: 22.05.2013

art100 пишет:

на перфокартах

точно точно, на перфокартах как раз мелкософт и вставил эту проблему первый раз. вот эти пробелы между дырочками...

art100
Offline
Зарегистрирован: 09.03.2014

Puhlyaviy пишет:

art100 пишет:

на перфокартах

точно точно, на перфокартах как раз мелкософт и вставил эту проблему первый раз. вот эти пробелы между дырочками...

конечно когда диодные поля распаивали пробелов не было ведь

вот покажи где пробелы?

Клапауций
Offline
Зарегистрирован: 10.02.2013

так и не понял, почему проблема винды проявляется на невинде.

art100
Offline
Зарегистрирован: 09.03.2014

Клапауций пишет:

так и не понял, почему проблема винды проявляется на невинде.

понятно

больше не наливаем

блин на Adruino Leonardo 3 ноги мертвые

греется как утуг

но компилируется

2 часа каждую ногу коротил и правил код

//art100 to write test pins
int pinA0=A0;
//int pinA1=A1;//bad
//int pinA2=A2;//bad
int pinA3=A3;
int pinA4=A4;
int pinA5=A5;
int pin0=0;
int pin1=1;
//int pin2=2;
//int pin3=3;
//int pin4=4;
//int pin5=5;
//int pin6=6;
//int pin7=7;
//int pin8=8;
//int pin9=9;
//int pin10=10;
//int pin11=11;
//int pin12=12;//bad

int led13=13;
void setup() {
  pinMode(pinA0,INPUT_PULLUP); 
//  pinMode(pinA1,INPUT_PULLUP);//bad  
//  pinMode(pinA2,INPUT_PULLUP);//bad
  pinMode(pinA3,INPUT_PULLUP); 
  pinMode(pinA4,INPUT_PULLUP); 
  pinMode(pinA5,INPUT_PULLUP); 
  pinMode(pin0, INPUT_PULLUP); 
  pinMode(pin1, INPUT_PULLUP); 
//  pinMode(pin2, INPUT_PULLUP); 
//  pinMode(pin3, INPUT_PULLUP); 
//  pinMode(pin4, INPUT_PULLUP); 
//  pinMode(pin5, INPUT_PULLUP); 
//  pinMode(pin6, INPUT_PULLUP); 
//  pinMode(pin7, INPUT_PULLUP); 
//  pinMode(pin8, INPUT_PULLUP); 
//  pinMode(pin9, INPUT_PULLUP); 
//  pinMode(pin10,INPUT_PULLUP); 
//  pinMode(pin11,INPUT_PULLUP); 
//  pinMode(pin12,INPUT_PULLUP); //bad
  
  pinMode(led13,OUTPUT);

  Serial.begin(9600);
  Mouse.begin();// initialize mouse control:
  Keyboard.begin();
}
//======================================================================
void loop() {
  if (digitalRead(pinA0)==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13,LOW); }
//  if (digitalRead(pinA1)==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13,LOW); }
//  if (digitalRead(pinA2)==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13,LOW); }
  if (digitalRead(pinA3)==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13,LOW); }
  if (digitalRead(pinA4)==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13,LOW); }
  if (digitalRead(pinA5)==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13,LOW); }
  if (digitalRead(pin0 )==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13,LOW); }
  if (digitalRead(pin1 )==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13,LOW); }
//  if (digitalRead(pin2 )==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13 ,LOW); }
//  if (digitalRead(pin3 )==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13 ,LOW); }
//  if (digitalRead(pin4 )==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13,LOW); }
//  if (digitalRead(pin5 )==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13,LOW); }
//  if (digitalRead(pin6 )==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13,LOW); }
//  if (digitalRead(pin7 )==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13,LOW); }
//  if (digitalRead(pin8 )==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13,LOW); }
//  if (digitalRead(pin9 )==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13,LOW); }
//  if (digitalRead(pin10)==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13,LOW); }
//  if (digitalRead(pin11)==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13,LOW); }
//  if (digitalRead(pin12)==LOW){ digitalWrite(led13,HIGH); delay(100); digitalWrite(led13,LOW); }
  
//if (Serial.available() > 0) {// use serial input to control the mouse:
//  char inChar = Serial.read();
//  switch (inChar) {   
//  case 'u': Mouse.move(0, -40);break; // move mouse up
//  case 'd': Mouse.move(0, 40); break;// move mouse down
//  case 'l': Mouse.move(-40, 0);  break;// move mouse left
//  case 'r': Mouse.move(40, 0); break;// move mouse right
//  case 'm': Mouse.click(MOUSE_LEFT); break;  }// perform mouse left click
//}
//if (digitalRead(upButton) == LOW) {  digitalWrite(led13,HIGH);  delay(100); digitalWrite(led13,LOW);  }//Keyboard.write('u');   }
//if (digitalRead(downButton) == LOW) {  digitalWrite(led13,HIGH);  delay(100); digitalWrite(led13,LOW);  }//Keyboard.write('d');   }
//if (digitalRead(leftButton) == LOW) {  digitalWrite(led13,HIGH);  delay(100); digitalWrite(led13,LOW);  }//Keyboard.write('l');   }
//if (digitalRead(rightButton) == LOW) {  digitalWrite(led13,HIGH);  delay(100); digitalWrite(led13,LOW);  }//Keyboard.write('r');   }
//if (digitalRead(mouseButton) == LOW) {  digitalWrite(led13,HIGH);  delay(100); digitalWrite(led13,LOW);  }//Keyboard.write('m');   }
delay(100);
}

но все компилируется

что я делаю не так?

 

Клапауций
Offline
Зарегистрирован: 10.02.2013

art100 пишет:

но все компилируется

что я делаю не так?

странно это всё - если у автомобиля снять три колеса, то двигатель не заводится

igorek9191
Offline
Зарегистрирован: 22.05.2014

Цитата: В проекте WinAvr, а пути к ардуино компилятору. Нужно использовать winavr компилятор.

Если можно, поподробнее опишите. Пытаюсь компилировать уже по-всякому. Не получается :(

igorek9191
Offline
Зарегистрирован: 22.05.2014

kisoft пишет:
В проекте WinAvr, а пути к ардуино компилятору. Нужно использовать winavr компилятор.

Если можно, поподробнее опишите. Пытаюсь компилировать уже по-всякому. Не получается :(

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

WinAvr у меня отсутствует, ради этого ставить его никакого желания, потому как мне он не нужен.
Пропишите пути к компилятору WinAvr, а не к Ардуино. Это то Вы сможете. Смогли же к Ардуино прописать.

igorek9191
Offline
Зарегистрирован: 22.05.2014

kisoft пишет:
WinAvr у меня отсутствует, ради этого ставить его никакого желания, потому как мне он не нужен. Пропишите пути к компилятору WinAvr, а не к Ардуино. Это то Вы сможете. Смогли же к Ардуино прописать.

Благодарю, что подсказываете. Я попробовал прокомпилировать пробный файл (avrblink.c), как в статье. Всё удачно прошло, даже потом смог его залить в мк. Но вот с моим файлом беда. Компилятор ругается что нет файла Arduino.h, который включен в главном файле. Картинка.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Дайте ссылку на скетч для куба, иначе мы тут через полгода не закончим.

art100
Offline
Зарегистрирован: 09.03.2014

О да тут весело

рубка на паяльниках в самом разгаре 

igorek9191
Offline
Зарегистрирован: 22.05.2014

kisoft пишет:

Дайте ссылку на скетч для куба, иначе мы тут через полгода не закончим.

http://www.masterkit.ru/main/set.php?code_id=1298517

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Зачем Вам нужен WinAvr, всё прекрасно компилируется в ArduinoIDE. Далее в моих примерах, ArduinoIDE установлено в каталог D:\Programs\Arduino-1.0.5, у Вас это явно другой каталог, потому пути сообразите какие у Вас.

1. Я скачал библиотеку и разархивировал её  каталог D:\Programs\Arduino-1.0.5\libraries\MP1051

2. Скачал примеры, разархивировал их в каталог D:\Programs\Arduino-1.0.5\libraries\MP1051\examples

3. Содержимое каталога D:\Programs\Arduino-1.0.5\libraries\MP1051

examples
keywords.txt
MP1051.cpp
MP1051.h

4. Содержимое каталога D:\Programs\Arduino-1.0.5\libraries\MP1051\examples

STEP_1
STEP_2
STEP_3
STEP_4
STEP_6

5. Запустил ArduinoIDE v1.0.5, выбрал в примерах STEP_1. Выбрал плату "Nano w/ 328"

6. Скомпилировал.

Хотите использовать WinAvr? Сначала на ArduinoIDE потренируйтесь, а потом перебирайтесь на WinAvr

 

igorek9191
Offline
Зарегистрирован: 22.05.2014

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Повторил на другом компе, у меня снова всё корректно компилируется. Выполнял точно так, как написал в сообщении #32

 

igorek9191
Offline
Зарегистрирован: 22.05.2014

kisoft пишет:

Повторил на другом компе, у меня снова всё корректно компилируется. Выполнял точно так, как написал в сообщении #32

 

Заработало!)) Смог таки наконец запрограммировать. Но наверное я как то не так это делаю, потому что сейчас работает только один эффект, на пульт не реагирует. Как правильно залить примеры?

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Как правильно залить пример? Как обычный скетч. 

Каждый пример - делает какое-то определенное действие, смотрите комментарии в скетчах.

Например, STEP_1:

//  Проверка правильности подключения светодиодной матрицы
//  последовательно загораются L11-L44 по слоям A1-A4
//  нижний слой гаснет плавно
 
STEP_2:
//  проверка работы ИК-пульта
//  пульт передаёт адрес=0, коды кнопок показаны ниже
 
STEP_4:
//  Определение адреса и команды ИК-пульта, протокол NEC
 
STEP_3 & STEP_6 - надо копаться, загружать в последнюю очередь.
 

 

igorek9191
Offline
Зарегистрирован: 22.05.2014

Ну что за нафиг?? на step2 не хочет загружаться, при том что остальные примеры по отдельности нормально загружаются.

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Вроде бы ясно написано, что setup и loop уже определены в step_1, Вы, не знаю как (копировали в один каталог что ли?) открыли два скетча одновременно, конечно будет дублирование