Ребят помогите смешать скетчи!!!

maxtms1
Offline
Зарегистрирован: 01.01.2016

Ребят помогите смешать скетчи, при правильной работе, буду очень благодарен, возможно поощрю. P.s. Arduino nano. Если нужно больше информации спрашивайте.

#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 10
#define TEMPERATURE_PRECISION 9
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress insideThermometer, outsideThermometer;
void setup(void)
{
  Serial.begin(9600);
  analogReference(INTERNAL);
  sensors.begin();
  if (!sensors.getAddress(insideThermometer, 0)) Serial.println("Unable to find address for Device 0"); 
  if (!sensors.getAddress(outsideThermometer, 1)) Serial.println("Unable to find address for Device 1"); 
  sensors.setResolution(insideThermometer, TEMPERATURE_PRECISION);
  sensors.setResolution(outsideThermometer, TEMPERATURE_PRECISION);
}
void printAddress(DeviceAddress deviceAddress)
{
  for (uint8_t i = 0; i < 8; i++)
  {
  }
}

void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  Serial.print(tempC);
  Serial.print(" ");
  float Vbat = (analogRead(A5) * 1.1) / 1024.0;
  float Vin = Vbat / (10.3 / (170.0 + 10.3)); // R2/(R1+R2)
  
  Serial.print(Vin);
}

void printData(DeviceAddress deviceAddress)
{
  Serial.print(" ");
  printTemperature(deviceAddress);
  Serial.println();
}

void loop(void)
{ 
  sensors.requestTemperatures();
  printData(insideThermometer);
  printData(outsideThermometer);
}

 

 

Скетч 2

 

 

 

#include <FreqMeasure.h>

void setup() {
  Serial.begin(57600);
  FreqMeasure.begin();
}

double sum=0;
int count=0;

void loop() {
  if (FreqMeasure.available()) {
    sum = sum + FreqMeasure.read();
    count = count + 1;
    if (count > 30) {
      float frequency = FreqMeasure.countToFrequency(sum / count);
      Serial.println(frequency);
      sum = 0;
      count = 0;
    }
  }
}

Пожайлуйста, очень надо...

bodriy2014
bodriy2014 аватар
Offline
Зарегистрирован: 12.05.2015

Возможно поощрите, кость бросите как собачке послушной.

Иди учи матчасть умник.

такому даже за КЕШ не рекомендовал бы писать.

Araris
Offline
Зарегистрирован: 09.11.2012

Да, я понимаю, что топикстартер не имел в виду кого-либо обидеть, а просто неудачно изъяснился, но

Всех с Новым Годом !

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

смешивал не сильно....

#include <OneWire.h>
#define TEMPERATURE_PRECISION 9
printData(outsideThermometer);
OneWire oneWire(ONE_WIRE_BUS);
void setup(void)
{
  Serial.begin(9600);
  analogReference(INTERNAL);
  sensors.begin();
  void printData(DeviceAddress deviceAddress)
  if (!sensors.getAddress(insideThermometer, 0)) Serial.println("Unable to find address for Device 0"); 
  if (!sensors.getAddress(outsideThermometer, 1)) Serial.println("Unable to find address for Device 1"); 
  sensors.setResolution(insideThermometer, TEMPERATURE_PRECISION);
}
void printAddress(DeviceAddress deviceAddress)
{
  for (uint8_t i = 0; i < 8; i++)
  {
  }
}
void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  Serial.print(tempC);
  float frequency = FreqMeasure.countToFrequency(sum / count);
  float Vbat = (analogRead(A5) * 1.1) / 1024.0;
  float Vin = Vbat / (10.3 / (170.0 + 10.3)); // R2/(R1+R2)

  Serial.print(Vin);
}
{
  Serial.print(" ");
  printTemperature(deviceAddress);
  Serial.println();
  DallasTemperature sensors(&oneWire);
  #include <DallasTemperature.h>
}
void loop(void)
{ 
  sensors.requestTemperatures();
  printData(insideThermometer);
  #define ONE_WIRE_BUS 10
}
#include <FreqMeasure.h>
void setup() {
  Serial.begin(57600);
  Serial.print(" ");  Serial.print(" ");
  FreqMeasure.begin();
}
double sum=0;
int count=0;
void loop() {
  if (FreqMeasure.available()) {
    sum = sum + FreqMeasure.read();
    count = count + 1;
    if (count > 30) {
      Serial.println(frequency);
      sum = 0;
      #define ONE_WIRE_BUS 10
      DeviceAddress insideThermometer, outsideThermometer;
      count = 0;
    }
  }
}

Всех с Наступившим Годом !!!!!!!

с 7E0 годом !!!!! Ура !!!!!!!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

maxtms1 пишет:

Ребят помогите смешать скетчи

Цель? Что они должны делать? Хрен его знает, сам мол догадывайся.

В общем, берешь блендер, засовываешь туда скетчи и тщательно перемешиваешь.

Как перемешаешь, отпишись, если всё получится

maxtms1 пишет:

возможно поощрю

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

фиг !!!!!
мой блендер первееееееееее !

Alexino
Offline
Зарегистрирован: 29.12.2015

Перемешал



	#include <OneWire.h>
	#include <DallasTemperature.h>
	#define ONE_WIRE_BUS 10
	#define TEMPERATURE_PRECISION 9
	OneWire oneWire(ONE_WIRE_BUS);
	DallasTemperature sensors(&oneWire);
	DeviceAddress insideThermometer, outsideThermometer;

	double sum=0;
	int count=0;

	void setup(void)
	{
	  Serial.begin(57600);
	  FreqMeasure.begin();
	  Serial.begin(9600);
	  analogReference(INTERNAL);
	  sensors.begin();
	  if (!sensors.getAddress(insideThermometer, 0)) Serial.println("Unable to find address for Device 0"); 
	  if (!sensors.getAddress(outsideThermometer, 1)) Serial.println("Unable to find address for Device 1"); 
	  sensors.setResolution(insideThermometer, TEMPERATURE_PRECISION);
	  sensors.setResolution(outsideThermometer, TEMPERATURE_PRECISION);
	}
	void printAddress(DeviceAddress deviceAddress)
	{
	  for (uint8_t i = 0; i < 8; i++)
	  {
	  }
	}
	 
	void printTemperature(DeviceAddress deviceAddress)
	{
	  float tempC = sensors.getTempC(deviceAddress);
	  Serial.print(tempC);
	  Serial.print(" ");
	  float Vbat = (analogRead(A5) * 1.1) / 1024.0;
	  float Vin = Vbat / (10.3 / (170.0 + 10.3)); // R2/(R1+R2)
	   
	  Serial.print(Vin);
	}
	 
	void printData(DeviceAddress deviceAddress)
	{
	  Serial.print(" ");
	  printTemperature(deviceAddress);
	  Serial.println();
	}
	 
	void loop(void)
	{ 
	  sensors.requestTemperatures();
	  printData(insideThermometer);
	  printData(outsideThermometer);

	  if (FreqMeasure.available()) {
	    sum = sum + FreqMeasure.read();
	    count = count + 1;
	    if (count > 30) {
	      float frequency = FreqMeasure.countToFrequency(sum / count);
	      Serial.println(frequency);
	      sum = 0;
	      count = 0;
	    }
	  }
	}


 

Деньги переведёте любому детскому дому. Чек покажите.

С новым годом !

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

Alexino ,  в очередь , пожста !!!!!
см. #3 !!!!!!!!!!!!!!!!
:)-

Alexino
Offline
Зарегистрирован: 29.12.2015

Ваш блендер неправильно смешал, он бутербродом уложил :)))
Тем более, я на благо бездомных детишек, могли бы и пропустить без очереди :)

SU-27-16
SU-27-16 аватар
Offline
Зарегистрирован: 13.08.2012

проходи....
согласен , но меньше на 2 5-сотки будет по Иг.........

С Новым !!!!

Logik
Offline
Зарегистрирован: 05.08.2014

"Смешатьно не взбалтывать"

maxtms1
Offline
Зарегистрирован: 01.01.2016

Спасибо, что вы все помогли, но не заработало, первый скетч не проходит компиляцию, а второй-не работает.

Logik
Offline
Зарегистрирован: 05.08.2014

maxtms1 пишет:

 второй-не работает.

Причина очевидна. Взболтаны настройки Serial в Setup. Аккуратней смешивайте!

maxtms1
Offline
Зарегистрирован: 01.01.2016

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

#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 10
#define TEMPERATURE_PRECISION 9
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
DeviceAddress insideThermometer, outsideThermometer;
void setup(void)
{
  Serial.begin(9600);
  analogReference(INTERNAL);
  sensors.begin();
  if (!sensors.getAddress(insideThermometer, 0)) Serial.println("Unable to find address for Device 0"); 
  if (!sensors.getAddress(outsideThermometer, 1)) Serial.println("Unable to find address for Device 1"); 
  sensors.setResolution(insideThermometer, TEMPERATURE_PRECISION);
  sensors.setResolution(outsideThermometer, TEMPERATURE_PRECISION);
}

void printTemperature(DeviceAddress deviceAddress)
{
  float tempC = sensors.getTempC(deviceAddress);
  Serial.print(tempC);
  Serial.print(" ");
  float Vbat = (analogRead(A5) * 1.1) / 1024.0;
  float Vin = Vbat / (10.3 / (170.0 + 10.3)); // R2/(R1+R2)
  
  Serial.print(Vin);
}

void printData(DeviceAddress deviceAddress)
{
  Serial.print(" ");
  printTemperature(deviceAddress);
  Serial.println();
}

void loop(void)
{ 
  sensors.requestTemperatures();
  printData(insideThermometer);
  printData(outsideThermometer);
}

 

maxtms1
Offline
Зарегистрирован: 01.01.2016

Тогда, может предложите свой вариант, пожайлуйста

maxtms1
Offline
Зарегистрирован: 01.01.2016

Logik пишет:

maxtms1 пишет:

 второй-не работает.

Причина очевидна. Взболтаны настройки Serial в Setup. Аккуратней смешивайте!

Тогда, может предложите свой вариант, пожайлуйста

Alexino
Offline
Зарегистрирован: 29.12.2015

maxtms1 пишет:

а второй-не работает.

Всё там работает. Нужно просто хотябы немного мозг включать, а не бездумно копипастить.
Тем более, вам ещё и подсказку дали.

Дальше уже сами. Ну или показываем чек и будет вам ещё подсказка  )))

maxtms1
Offline
Зарегистрирован: 01.01.2016

А какую сумму переводить?

 

maxtms1
Offline
Зарегистрирован: 01.01.2016

И кстати всё как сказали поправил и подключение библиотеки FreqMeasure добавил, вольты и температуру показывает, а частоту нет.