Jump to content
tesla.qwartz

Ошибка компиляции attiny 85

Recommended Posts

Здравствуйте подскажите собрал код в ардуино термометра на ds18b20, проверил на Arduino Nano все работает, хотел залить в Digispark attiny 85 и Arduino IDE выдало ошибку компиляции для платы

Код

#include <OneWire.h>
#include <SPI.h> 
// провод CS подсоединяем к 8-му пину Arduino 
enum { reg = 8 }; 
OneWire ds(7); // Объект OneWire
int temperature = 0; // Глобальная переменная для хранения значение температуры с датчика DS18B20
 
long lastUpdateTime = 0; // Переменная для хранения времени последнего считывания с датчика
const int TEMP_UPDATE_TIME = 400; // Определяем периодичность проверок
void setup()
{
// инициализируем SPI 
  SPI.begin();   
// определяем 8-й пин Arduino как выход        
  pinMode(reg, OUTPUT); 
  //Serial.begin(9600);
}
//мы разобъем число на сотни, десятки и единицы, объявляем их здесь 
int hundreds=0, tens=0, ones=0; 
//время отображения каждой цифры       
int delayTime=5;        
//коды цифр на семисегментнике (0-9 и пустота)   
static uint8_t digit[31] = {0x08,0x18,0x88,0x98,0x48,0x58,0xC8,0xD8,0x28,0x38,0xFF,
0x04,0x14,0x84,0x94,0x44,0x54,0xC4,0xD4,0x24,0x34,0x02,0x12,0x82,0x92,0x42,0x52,0xC2,0xD2,0x22,0x32}; 
// коды позиций зажигаемого семисегментника (левый, центральный, правый) 
//static uint8_t pos[3]= {0xE7,0xEB,0xF3};             


void loop()
{

detectTemperature(); // Определяем температуру от датчика DS18b20
  //Serial.println(temperature); // Выводим полученное значение температуры
  // Т.к. переменная temperature имеет тип int, дробная часть будет просто отбрасываться
}
 
int detectTemperature(){
 
  byte data[2];
  ds.reset();
  ds.write(0xCC);
  ds.write(0x44);
 
  if (millis() - lastUpdateTime > TEMP_UPDATE_TIME)
  {
    lastUpdateTime = millis();
    ds.reset();
    ds.write(0xCC);
    ds.write(0xBE);
    data[0] = ds.read();
    data[1] = ds.read();
 
    // Формируем значение
    temperature = (data[1] << 8) + data[0]; temperature = temperature >> 4;
  }
  
//число, которое будем выводить 
  int f = temperature;                          
//выделяем сотни   
  hundreds=(f/100) ;    
//выделяем десятки                   
  tens=((f-hundreds*100)/10); 
//выделяем единицы            
  ones=f-hundreds*100-tens*10;   
//если сотен нет, не отображаем ничего в 3м разряде       
  if (hundreds==0) hundreds=10;   
//если сотен и десятков нет, не отображаем ничего во 2м разряде      
  if (hundreds==10 && tens==0)tens=10; 


//начинаем передачу по SPI 
  digitalWrite(reg, LOW);       
//передаем код цифры, соответствующей разряду сотен        
  SPI.transfer(digit[hundreds+21]);
//выбираем левый 7-сегментник        
  //SPI.transfer(pos[0]);      
//заканчиваем передачу            
  digitalWrite(reg, HIGH);
//пауза, равная delayTime              
  delay(delayTime);                    


//передаем код цифры, соответствующей разряду десятков         
  digitalWrite(reg, LOW); 
  SPI.transfer(digit[tens+11]);
//выбираем центральный 7-сегментник            
  //SPI.transfer(pos[1]);                
  digitalWrite(reg, HIGH); 
  delay(delayTime); 
        
//передаем код цифры, соответствующей разряду единиц 
  digitalWrite(reg, LOW); 
  SPI.transfer(digit[ones]);  
//выбираем правый 7-сегментник          
  //SPI.transfer(pos[2]);                
  digitalWrite(reg, HIGH); 
  delay(delayTime); 
  
}

sketch_sep09b.ino

Share this post


Link to post
Share on other sites
4 часа назад, tesla.qwartz сказал:

Arduino IDE выдало ошибку компиляции для платы

Вы считаете, что тут все экстрасенсы ?

Share this post


Link to post
Share on other sites

Литиевые батарейки Fanso для систем телеметрии и дистанционного контроля

Системы телеметрии находят все более широкое применение во многих отраслях на промышленных и коммунальных объектах. Требования, предъявляемые к условиям эксплуатации приборов телеметрии и, как следствие, источников питания для них, могут быть довольно жесткими. Fanso предоставляет широкую линейку продукции, рассчитанной на различные условия эксплуатации, что позволяет подобрать батарейку для каждого конкретного применения, в том числе и для устройств телеметрии.

Подробнее

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения

    • А какая необходимость была в изготовлении такой пищалки? - просто хотелось попробовать изготовить? Чем такая конструкция отличается от динамических или пьезо излучателей по звучанию, отдаче, диапазону, неравномерности, направленности, искажению итп?
    • Важно и отсутствие пульсаций и качество стабилизации, - это требование не рядовое, следовало ему уделить особое внимание, поставив локальный стабилизатор по образцу в даташите.
    • рисуй фрагмент схемы .... в Гугле смотрел схемы типовые на них?
    • не сделаешь, у тебя уровня знаний не хватает даже сформулировать ТЗ. ЗЫ с таким ТЗ тему нужно было создавать в разделе работа с оглашением бюджета на разработку. переносить будем?
    • Следующий элемент схемы – силовой трансформатор. Планировалось использовать домотанный ОСМ-0,1 и небольшой трансик от системы охранной сигнализации для смещения. Однако домотанный трансформатор удвоении тока нагрузки (подключении второго канала) не давал необходимого анодного напряжения и увеличить  его дополнительной обмоткой нет никакой возможности. Окно заполнено полностью. Было принято решение доработать сердечник от ОСМ-0,1 и изготовить новый каркас. Перед разборкой помечаю подковы, чтобы не ошибиться в последующем при окончательной сборке.   Трансформатор при работе, даже без пропитки, совершенно беззвучен, так как реальная индукция в сердечнике 1,19 Тл. (вычислялась по току первичной обмотки при полной нагрузке). По результатам прогона можно с удовлетворением сказать что затея удалась.
    • Guest Николай:)
      Зачем все дублировать и добавлять : ? Когда можно сразу передавать состояние джойстиков одной строчкой (в данном случае из 14 символов вместо 7). Будет это выглядеть так:  SMDjoystick j(2, 3, 4, 5, 6, 7, 8,A0,A1,A2,A3,9,10,11); /// При подключении по указанной схеме, кстати, почему проигнорирован 12 пин? естественно,  библиотеку подправить, добавив порты. Кроме того, зачем задержка 90 миллисекунд?! это очень много! В исходнике 35, этого достаточно.
  • Покупай!

×
×
  • Create New...