<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Operatori Matematici Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/operatori-matematici/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/operatori-matematici/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Mon, 12 Oct 2015 18:26:38 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://logicaprogrammabile.it/wp-content/uploads/2017/11/cropped-logicaprogrammabile-logo-02-32x32.png</url>
	<title>Operatori Matematici Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/operatori-matematici/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Arduino funzioni matematiche interessanti</title>
		<link>https://logicaprogrammabile.it/arduino-funzioni-matematiche-interessanti/</link>
					<comments>https://logicaprogrammabile.it/arduino-funzioni-matematiche-interessanti/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Mon, 09 Jan 2012 10:01:00 +0000</pubDate>
				<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Metodi]]></category>
		<category><![CDATA[Operatori Matematici]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=2390</guid>

					<description><![CDATA[<p>Come utilizzare alcuni operatori e funzioni matematiche nei progetti Nei nostri sketch, quando utilizziamo variabili numeriche, impieghiamo, solitamente, degli operatori matematici per manipolare questi dati. I più semplici, come sappiamo bene, sono l&#8217;addizione, la sottrazione, la moltiplicazione e la divisione. Fortunatamente esistono anche altri metodi...</p>
<p>The post <a href="https://logicaprogrammabile.it/arduino-funzioni-matematiche-interessanti/">Arduino funzioni matematiche interessanti</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h3>Come utilizzare alcuni operatori e funzioni matematiche nei progetti</h3>
<p><img decoding="async" class="aligncenter size-full wp-image-2403" title="FunzioneMatematiche" src="https://logicaprogrammabile.it/wp-content/uploads/2012/01/FunzioneMatematiche.jpg" alt="Funzioni matematiche con Arduino" width="218" height="216" srcset="https://logicaprogrammabile.it/wp-content/uploads/2012/01/FunzioneMatematiche.jpg 218w, https://logicaprogrammabile.it/wp-content/uploads/2012/01/FunzioneMatematiche-150x150.jpg 150w" sizes="(max-width: 218px) 100vw, 218px" /></p>
<p>Nei nostri sketch, quando utilizziamo variabili numeriche, impieghiamo, solitamente, degli operatori matematici per manipolare questi dati. I più semplici, come sappiamo bene, sono l&#8217;addizione, la sottrazione, la moltiplicazione e la divisione. Fortunatamente esistono anche altri metodi che ci permettono di velocizzare e di risolvere diverse situazioni che si presentano durante la scrittura degli sketch.</p>
<p>In questo articolo volevo analizzare alcune funzioni particolari come <strong>constrain</strong>, <strong>min</strong>, <strong>max</strong>, <strong>floor</strong> e <strong>ceil</strong></p>
<h4>Come limitare un valore entro un limite minimo e massimo</h4>
<p>Quando si ha la necessità di ottenere sempre dei valori compresi in un intervallo definito, possiamo usare la funzione <strong>constrain(value, min, max)</strong>. Il codice seguente mostra come impiegarla<span id="more-2390"></span></p>
<p>[c]<br />
int Var = 10;<br />
int Result = 0;</p>
<p>void setup()<br />
{<br />
  Serial.begin(9600);<br />
}</p>
<p>void loop()<br />
{<br />
  //il valore Result sarà uguale a 50<br />
  Var = 50;<br />
  Result = constrain(Var, 10, 100);<br />
  Serial.println(Result);</p>
<p>  //il valore Result sarà uguale a 10<br />
  Var = 5;<br />
  Result = constrain(Var, 10, 100);<br />
  Serial.println(Result);</p>
<p>  //il valore Result sarà uguale a 100<br />
  Var = 500;<br />
  Result = constrain(Var, 10, 100);<br />
  Serial.println(Result);</p>
<p>  //non fa nulla<br />
  while(true)<br />
  ;</p>
<p>}</p>
<p>[/c]</p>
<p>Se la variabile <strong>Valore</strong> è minore di 10 il risultato sarà 10 se il valore è maggiore di 90 il risultato sarà 90, negli altri casi il risultato sarà uguale alla variabile Valore.</p>
<h4>Come trovare il minimo ed il massimo tra due numeri</h4>
<p>la funzione per calcolare il valore minimo tra due numeri è <strong>min(val1, val2);</strong> e viene impiegata in questo modo</p>
<p>[c]</p>
<p>int Var1 = 10;<br />
int Var2 = 50;<br />
int Result = 0;</p>
<p>void setup()<br />
{<br />
  Serial.begin(9600);<br />
}</p>
<p>void loop()<br />
{<br />
  //il valore Result sarà uguale a 10<br />
  Result = min(Var1, Var2);<br />
  Serial.print(Result);</p>
<p>  //non fa nulla<br />
  while(true)<br />
  ;</p>
<p>}<br />
[/c]</p>
<p>mentre la funzione per calcolare il valore massimo tra due numeri è <strong>max(val1, val2);</strong> e viene utilizzata in questo modo</p>
<p>[c]</p>
<p>int Var1 = 10;<br />
int Var2 = 50;<br />
int Result = 0;</p>
<p>void setup()<br />
{<br />
  Serial.begin(9600);<br />
}</p>
<p>void loop()<br />
{<br />
  //il valore Result sarà uguale a 50<br />
  Result = max(Var1, Var2);<br />
  Serial.print(Result);</p>
<p>  //non fa nulla<br />
  while(true)<br />
  ;</p>
<p>}</p>
<p>[/c]</p>
<h4>Come arrotondare un numero per difetto o per eccesso</h4>
<p>Le funzioni <strong>floor(val)</strong> e <strong>ceil(val)</strong> permettono di arrotondare rispettivamente per difetto e per eccesso un numero in virgola mobile. L&#8217;esempio seguente mostra come utilizzarle</p>
<p>[c]</p>
<p>float Var = 10.6598;<br />
int Result = 0;</p>
<p>void setup()<br />
{<br />
  Serial.begin(9600);<br />
}</p>
<p>void loop()<br />
{<br />
  //arrotonda per difetto<br />
  Result = floor(Var);<br />
  Serial.println(Result);</p>
<p>  //arrotonda per accesso<br />
  Result = ceil(Var);<br />
  Serial.println(Result);</p>
<p>  //non fa nulla<br />
  while(true)<br />
  ;</p>
<p>}</p>
<p>[/c]</p>
<h4>Come rimappare un intervallo di valori con un altro</h4>
<p>Quando si rende necessario scalare un intervallo di valori con un altro ci viene incontro la funzione <strong>map</strong>. Ad esempio i valori che possiamo ottenere dalla lettura di un segnale applicato ad un pin analogico di Arduino sono compresi tra 0 e 1023, se volessimo ottenere un intervallo diverso ma equivalente potremmo utilizzare la funzione <strong>map(data,x1,y1,x2,y2);</strong> in questo modo:</p>
<p>[c]</p>
<p>int DataAN0 = 0;<br />
int ValEqu = 0;</p>
<p>void setup()<br />
{<br />
  Serial.begin(9600);<br />
}</p>
<p>void loop()<br />
{<br />
  //leggo dal pin analogico zero<br />
  DataAN0 = analogRead(0);</p>
<p>  //i valoridi Result possono andare da 0 a 1024<br />
  //voglio rimappare questi valori per<br />
  //ottenere un intervallo equivalente che va<br />
  //da 0 a 255<br />
  ValEqu = map(DataAN0, 0, 1023, 0, 255);</p>
<p>  Serial.print(&quot;Valore Originale &quot;);<br />
  Serial.println(DataAN0);<br />
  Serial.print(&quot;Valore rimmapato &quot;);<br />
  Serial.println(ValEqu);<br />
  Serial.println();<br />
  delay(1000);</p>
<p>}<br />
[/c]</p>
<p>Ulteriori informazioni sono presenti nel sito ufficiale <a href="http://arduino.cc/en/Reference/HomePage" target="_blank">Arduino.cc</a>, dove vengono illustrate ulteriori funzioni interessanti.</p>
<p>[facebook_ilike]</p>
<p>The post <a href="https://logicaprogrammabile.it/arduino-funzioni-matematiche-interessanti/">Arduino funzioni matematiche interessanti</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/arduino-funzioni-matematiche-interessanti/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
