Salta al contingut
Classes de reforç

Exercicis de programació i sistemes digitals — Tecnologia i Enginyeria 1r Batxillerat

Aquests exercicis treballen la base de tots els sistemes digitals: els uns i els zeros. Comences amb el sistema binari i les operacions lògiques AND i OR, i simplifiques expressions amb les lleis de l'àlgebra de Boole. Després dissenyes funcions lògiques per a situacions reals, com una alarma que s'activa només si la porta està oberta i el sistema està connectat. Al final programes microcontroladors: quina part d'un programa d'Arduino s'executa una sola vegada i com faries un enllumenat automàtic amb una LDR. Les solucions mostren les taules de veritat. Errors típics: llegir els residus de dalt a baix en passar a binari i confondre la porta OR amb la XOR.

Tens examen d'aquest tema? Fes un simulacre de 60 minuts com el de l'institut, amb solucions i criteris de correcció.Fes el simulacre →

Nivell bàsic

Exercici 1

Quin resultat dona l'operació AND entre 1 i 0? I l'OR entre 1 i 0?

Mira la solucióAmaga la solucióde l'exercici 1

Resultat

AND(1, 0) = 0; OR(1, 0) = 1.

Resolució

  1. Dades. Tens dues entrades, una a 1 i l'altra a 0, i has de trobar la sortida de la porta AND i de la porta OR.
  2. Porta AND. La sortida només val 1 si totes les entrades valen 1: 1⋅0=01\cdot 0 = 0.
  3. Porta OR. La sortida val 1 si almenys una entrada val 1 (n'hi ha prou que un sigui 1): 1+0=11 + 0 = 1.
  4. Conclusió. Per tant, AND(1, 0) = 0 i OR(1, 0) = 1.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 2

Què és un microcontrolador?

Mira la solucióAmaga la solucióde l'exercici 2

Resultat

Un microcontrolador és un petit ordinador en un sol xip (processador, memòria i pins d'entrada/sortida) que executa un programa per controlar sensors i actuadors.

Resolució

  1. Què és. És un circuit integrat que conté, dins d'un sol xip, tot el que necessita un ordinador senzill.
  2. Parts. Té un processador (executa les instruccions), memòria (guarda el programa i les dades) i pins d'entrada/sortida (E/S) per connectar-hi elements externs.
  3. Funció. Executa un programa que llegeix els sensors (entrades) i governa els actuadors (sortides): LED, motors, relés…
  4. Conclusió. Per exemple, la placa Arduino porta un microcontrolador que pots programar per fer sistemes de control automàtic.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 3

En un programa d'Arduino, quina part s'executa una sola vegada a l'inici i quina es repeteix contínuament mentre el sistema funciona?

Mira la solucióAmaga la solucióde l'exercici 3

Resultat

El setup s'executa una sola vegada a l'inici; el loop es repeteix contínuament mentre el sistema funciona.

Resolució

  1. Estructura. Tot programa d'Arduino té dues funcions bàsiques: setup() i loop().
  2. Setup (configuració). S'executa una sola vegada en engegar la placa. S'hi posa la configuració inicial, per exemple definir quins pins són entrada o sortida.
  3. Loop (bucle). Quan acaba el setup, el loop es repeteix contínuament: és on s'hi posa la feina que el sistema ha de fer una vegada i una altra (llegir sensors, decidir, actuar).
  4. Conclusió. Per tant, la configuració va al setup i el treball repetitiu, al loop.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 4

Calcula la sortida de les portes següents: (a) NAND amb entrades 1 i 1; (b) NOR amb entrades 0 i 0; (c) NOT amb entrada 1; (d) NAND amb entrades 1 i 0.

Mira la solucióAmaga la solucióde l'exercici 4

Apartat a)

Resultat

NAND(1, 1) = 0

Resolució

  1. Definició. La NAND és la negació de l'AND.
  2. Càlcul. AND(1, 1) = 1, per tant NAND(1, 1) = 1‾=0\overline{1} = 0.

Apartat b)

Resultat

NOR(0, 0) = 1

Resolució

  1. Definició. La NOR és la negació de l'OR.
  2. Càlcul. OR(0, 0) = 0, per tant NOR(0, 0) = 0‾=1\overline{0} = 1.

Apartat c)

Resultat

NOT 1 = 0

Resolució

  1. Definició. La NOT inverteix l'entrada.
  2. Càlcul. NOT 1 = 0.

Apartat d)

Resultat

NAND(1, 0) = 1

Resolució

  1. Càlcul. AND(1, 0) = 0, per tant NAND(1, 0) = 0‾=1\overline{0} = 1.
  2. Regla. Fixa't que la NAND només val 0 quan totes les entrades valen 1; en qualsevol altre cas val 1.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 5

Converteix el nombre binari 1011 0110 a hexadecimal i el nombre hexadecimal 3C a decimal. (Recorda: A = 10, B = 11, C = 12, D = 13, E = 14, F = 15.)

Mira la solucióAmaga la solucióde l'exercici 5

Resultat

1011 01102=B6161011\,0110_2 = \mathrm{B6}_{16}; 3C16=60\mathrm{3C}_{16} = 60.

Resolució

  1. Binari a hexadecimal. Separa el nombre en grups de 4 bits, començant per la dreta: 1011 i 0110.
  2. Cada grup. 10112=8+2+1=11=B1011_2 = 8 + 2 + 1 = 11 = \mathrm{B} i 01102=4+2=60110_2 = 4 + 2 = 6. Per tant, 1011 01102=B6161011\,0110_2 = \mathrm{B6}_{16}.
  3. Hexadecimal a decimal. Cada xifra es multiplica per la potència de 16 de la seva posició: 3C16=3⋅16+12=60\mathrm{3C}_{16} = 3\cdot 16 + 12 = 60.
  4. Comprovació. B616=11⋅16+6=182\mathrm{B6}_{16} = 11\cdot 16 + 6 = 182, i 101101102=128+32+16+4+2=18210110110_2 = 128 + 32 + 16 + 4 + 2 = 182. Coincideixen.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 6

Quin tipus de variable d'Arduino (int, float, boolean o char) és més adequat per guardar: (a) la temperatura 23,5 °C; (b) el nombre de persones que entren en una sala; (c) si un polsador està premut o no; (d) la lletra «A»?

Mira la solucióAmaga la solucióde l'exercici 6

Apartat a)

Resultat

float

Resolució

  1. Dada. La temperatura 23,5 °C té decimals.
  2. Tipus. Per a nombres amb decimals cal un float (coma flotant).

Apartat b)

Resultat

int

Resolució

  1. Dada. El nombre de persones sempre és un nombre enter.
  2. Tipus. Un int guarda nombres enters, sense decimals.

Apartat c)

Resultat

boolean

Resolució

  1. Dada. Un polsador només pot estar premut o no premut.
  2. Tipus. Un boolean només té dos valors: cert (true) o fals (false).

Apartat d)

Resultat

char

Resolució

  1. Dada. La lletra «A» és un sol caràcter.
  2. Tipus. Un char guarda un sol caràcter.
  3. Conclusió. Triar bé el tipus estalvia memòria i evita errors d'arrodoniment.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 7

Explica què fa cadascuna d'aquestes instruccions d'Arduino: (a) pinMode(13, OUTPUT); (b) digitalWrite(13, HIGH); (c) delay(500);

Mira la solucióAmaga la solucióde l'exercici 7

Apartat a)

Resultat

Configura el pin 13 com a sortida.

Resolució

  1. Funció. pinMode(pin, mode) indica si un pin treballarà com a entrada o com a sortida.
  2. Interpretació. pinMode(13, OUTPUT) deixa el pin 13 preparat per governar un LED, un relé… Es posa al setup.

Apartat b)

Resultat

Posa el pin 13 a nivell alt (5 V).

Resolució

  1. Funció. digitalWrite(pin, valor) fixa la tensió d'un pin de sortida: HIGH (5 V) o LOW (0 V).
  2. Interpretació. digitalWrite(13, HIGH) posa 5 V al pin 13; per exemple, encén el LED que hi tinguis connectat.

Apartat c)

Resultat

Atura el programa durant 500 ms (0,5 s).

Resolució

  1. Funció. delay(t) atura l'execució durant t mil·lisegons.
  2. Interpretació. delay(500) espera 500 ms = 0,5 s abans de continuar amb la instrucció següent.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 8

Quina diferència hi ha entre digitalRead() i analogRead() a Arduino? Quin interval de valors dona analogRead() amb l'ADC de 10 bits?

Mira la solucióAmaga la solucióde l'exercici 8

Resultat

digitalRead() retorna només 0 (LOW) o 1 (HIGH); analogRead() retorna un enter entre 0 i 1023.

Resolució

  1. digitalRead(). Llegeix un pin com a entrada digital i retorna només 0 (LOW) o 1 (HIGH). Serveix per a polsadors i interruptors.
  2. analogRead(). Llegeix una tensió entre 0 i 5 V amb el convertidor analògic-digital (ADC) i la converteix en un nombre enter.
  3. Interval de l'ADC. Un ADC de 10 bits dona 210=10242^{10} = 1024 valors diferents, és a dir, del 0 al 1023.
  4. Conclusió. analogRead() serveix per a sensors analògics, com una LDR o un potenciòmetre, que donen valors intermedis.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 9

Quants valors diferents es poden representar amb 8 bits? Quin és el nombre decimal més gran que es pot escriure amb 8 bits (sense signe)? I amb 10 bits?

Mira la solucióAmaga la solucióde l'exercici 9

Resultat

Amb 8 bits: 256 valors (de 0 a 255), el més gran és 255; amb 10 bits: 1024 valors, el més gran és 1023.

Resolució

  1. Propietat. Amb nn bits es poden representar 2n2^{n} valors diferents.
  2. 8 bits. 28=2562^{8} = 256 valors, del 0 al 255. El més gran és 111111112=25511111111_2 = 255.
  3. 10 bits. 210=10242^{10} = 1024 valors, del 0 al 1023.
  4. Conclusió. El nombre més gran sempre és 2n−12^{n} - 1, perquè el 0 també compta com un dels valors.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 10

Digues quan s'utilitza una estructura condicional (if/else) i quan un bucle (for o while) en un programa. Posa un exemple de cadascun.

Mira la solucióAmaga la solucióde l'exercici 10

Resultat

El condicional (if/else) serveix per prendre una decisió; el bucle (for/while) serveix per repetir un bloc de codi.

Resolució

  1. Condicional if/else. S'utilitza per prendre una decisió segons una condició: executa un bloc o un altre. Exemple: si la LDR llegeix poca llum, encendre el LED; si no, apagar-lo.
  2. Bucle for/while. Repeteix un bloc de codi mentre es compleix una condició (while) o un nombre determinat de vegades (for). Exemple: fer pampallugar un LED 5 vegades amb un for.
  3. Conclusió. Sovint es combinen: dins d'un bucle hi pot haver condicionals (el mateix loop d'Arduino és un bucle on es prenen decisions).

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Nivell intermedi

Exercici 11

Quina és la sortida d'una porta XOR quan les dues entrades valen 1?

Mira la solucióAmaga la solucióde l'exercici 11

Resultat

La sortida és 0.

Resolució

  1. Definició. La porta XOR (OR exclusiva) val 1 només si les entrades són diferents.
  2. Càlcul. Amb A = 1 i B = 1 les entrades són iguals: 1⊕1=01 \oplus 1 = 0.
  3. Conclusió. Per tant, la XOR dona 0 quan les dues entrades valen 1 (aquí es diferencia de l'OR, que donaria 1).

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 12

Una alarma s'ha d'activar només si la porta està oberta I el sistema d'alarma està activat. Quina porta lògica implementa aquesta condició?

Mira la solucióAmaga la solucióde l'exercici 12

Resultat

Una porta AND.

Resolució

  1. Plantejament. Entrades: porta oberta (P = 1) i sistema activat (S = 1). Sortida: alarma (A).
  2. Condició. L'alarma s'ha d'activar només si es compleixen les dues condicions alhora: A=P⋅SA = P\cdot S.
  3. Porta AND. La seva sortida només val 1 quan totes dues entrades valen 1 alhora (porta oberta i sistema activat); en qualsevol altre cas val 0.
  4. Conclusió. Per tant, la condició la implementa una porta AND.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 13

Quines dues parts bàsiques té un programa d'Arduino i què fa cadascuna?

Mira la solucióAmaga la solucióde l'exercici 13

Resultat

La configuració (setup), que s'executa una vegada a l'inici, i el bucle (loop), que es repeteix contínuament.

Resolució

  1. Setup. És la part de configuració: s'executa una sola vegada en engegar la placa (per exemple, per definir pins d'entrada i de sortida).
  2. Loop. És el bucle principal: es repeteix contínuament i hi va la feina que el sistema fa una vegada i una altra.
  3. Conclusió. Per tant, un programa d'Arduino té una part que prepara el sistema i una altra que el fa funcionar de manera contínua.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 14

Explica com programaries un enllumenat automàtic amb una LDR i un LED (a grans trets).

Mira la solucióAmaga la solucióde l'exercici 14

Resultat

Al setup configures la LDR com a entrada i el LED com a sortida; al loop llegeixes la LDR i, amb un condicional, encens el LED si hi ha poca llum i l'apagues si n'hi ha prou.

Resolució

  1. Elements. La LDR és el sensor (entrada analògica) i el LED és l'actuador (sortida digital).
  2. Setup. Configures la LDR com a entrada i el LED com a sortida.
  3. Loop. Llegeixes la LDR (amb analogRead()) i, amb un condicional, si el valor indica poca llum encens el LED; si no, l'apagues.
  4. Conclusió. Com que el loop es repeteix contínuament, el sistema s'adapta tota l'estona a la llum que hi ha.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 15

Un programa d'Arduino executa dins del loop: digitalWrite(8, HIGH); delay(300); digitalWrite(8, LOW); delay(700); Calcula el període, la freqüència del pampallugueig del LED i el percentatge de temps que està encès.

Mira la solucióAmaga la solucióde l'exercici 15

Resultat

T=1,0 sT = 1{,}0\ \text{s}; f=1 Hzf = 1\ \text{Hz}; encès el 30 % del temps.

Resolució

  1. Dades. Dins del loop, el LED està encès 300 ms (HIGH + delay(300)) i apagat 700 ms (LOW + delay(700)); després el cicle es repeteix.
  2. Període. T=300+700=1000 ms=1,0 sT = 300 + 700 = 1000\ \text{ms} = 1{,}0\ \text{s}.
  3. Freqüència. f=1T=11,0 s=1 Hzf = \dfrac{1}{T} = \dfrac{1}{1{,}0\ \text{s}} = 1\ \text{Hz}, és a dir, un parpelleig per segon.
  4. Temps encès. 3001000=0,30=30 %\dfrac{300}{1000} = 0{,}30 = 30\ \%.
  5. Conclusió. Si volguessis un 50 %, hauries de posar delay(500) als dos casos.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 16

Completa la taula de veritat de la porta NAND de dues entrades i explica com es pot obtenir una porta NOT fent servir només una porta NAND.

Mira la solucióAmaga la solucióde l'exercici 16

Resultat

Taula: 00 → 1, 01 → 1, 10 → 1, 11 → 0. Si uneixes les dues entrades, A⋅A‾=A‾\overline{A\cdot A} = \overline{A}: la NAND es comporta com una NOT.

Resolució

  1. Definició. La NAND és la negació de l'AND: S=A⋅B‾S = \overline{A\cdot B}.
  2. Taula de veritat.
    ABS
    001
    011
    101
    110
  3. NOT amb una NAND. Connecta les dues entrades a un mateix senyal A: S=A⋅A‾=A‾S = \overline{A\cdot A} = \overline{A}, perquè A⋅A=AA\cdot A = A. Per tant, la NAND amb les entrades unides és una porta NOT.
  4. Conclusió. Amb portes NAND es poden construir totes les altres portes; per això s'anomena porta universal.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 17

Simplifica amb àlgebra de Boole l'expressió F = (A + B)·(A + Bˉ\bar{B}) i comprova el resultat amb A = 0 i B = 1.

Mira la solucióAmaga la solucióde l'exercici 17

Resultat

F=AF = A; amb A = 0 i B = 1, F = 0 = A.

Resolució

  1. Plantejament. Has de simplificar F=(A+B)⋅(A+B‾)F = (A + B)\cdot(A + \overline{B}).
  2. Desenvolupament. F=A⋅A+A⋅B‾+B⋅A+B⋅B‾F = A\cdot A + A\cdot\overline{B} + B\cdot A + B\cdot\overline{B}
  3. Propietats de Boole. Idempotència A⋅A=AA\cdot A = A i complement B⋅B‾=0B\cdot\overline{B} = 0: F=A+A⋅B‾+A⋅B=A⋅(1+B‾+B)=A⋅1=AF = A + A\cdot\overline{B} + A\cdot B = A\cdot(1 + \overline{B} + B) = A\cdot 1 = A
  4. Comprovació. Amb A = 0 i B = 1: (0+1)⋅(0+0)=1⋅0=0(0 + 1)\cdot(0 + 0) = 1\cdot 0 = 0, que és igual a A = 0.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 18

Un programa d'Arduino fa: if (analogRead(A0) > 512) { digitalWrite(8, HIGH); } else { digitalWrite(8, LOW); } (a) A quina tensió d'entrada aproximada correspon el valor 512 amb una referència de 5 V i un ADC de 10 bits? (b) Què fa el LED del pin 8 quan la tensió és de 4 V?

Mira la solucióAmaga la solucióde l'exercici 18

Apartat a)

Resultat

V≈2,5 VV \approx 2{,}5\ \text{V} (la meitat de l'escala).

Resolució

  1. Resolució de l'ADC. Un ADC de 10 bits dona valors de 0 a 1023 per a tensions de 0 a 5 V, de manera que cada unitat val 51023 V≈4,89 mV\tfrac{5}{1023}\ \text{V} \approx 4{,}89\ \text{mV}.
  2. Càlcul. V≈512⋅51023=2,50 VV \approx 512\cdot\dfrac{5}{1023} = 2{,}50\ \text{V}.
  3. Conclusió. El llindar 512 correspon a uns 2,5 V, la meitat de l'escala.

Apartat b)

Resultat

La lectura és ≈ 818 > 512: el pin 8 queda a HIGH i el LED s'encén.

Resolució

  1. Lectura. Amb 4 V: 45⋅1023≈818\tfrac{4}{5}\cdot 1023 \approx 818.
  2. Condició. Com que 818 > 512, es compleix la condició de l'if.
  3. Conclusió. S'executa digitalWrite(8, HIGH): el pin 8 queda a nivell alt i el LED s'encén.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 19

(a) Quants bits calen com a mínim per codificar 20 estats diferents d'una màquina? (b) Quantes files té la taula de veritat d'una funció de 4 entrades?

Mira la solucióAmaga la solucióde l'exercici 19

Apartat a)

Resultat

Calen 5 bits.

Resolució

  1. Propietat. Amb nn bits hi ha 2n2^{n} combinacions; cal la nn més petita amb 2n≥202^{n} \ge 20.
  2. Càlcul. 24=162^{4} = 16 no n'hi ha prou (16 < 20) i 25=322^{5} = 32 ja és suficient.
  3. Conclusió. Calen 5 bits (sobren 12 combinacions sense fer servir).

Apartat b)

Resultat

La taula té 16 files.

Resolució

  1. Propietat. Una taula de veritat té una fila per a cada combinació de les entrades: 2n2^{n} files.
  2. Càlcul. Amb 4 entrades: 24=162^{4} = 16 combinacions, per tant 16 files.
  3. Conclusió. Fixa't que cada entrada nova dobla el nombre de files.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 20

Quin valor té la variable suma al final d'aquest codi? int suma = 0; for (int i = 1; i <= 7; i++) { if (i % 2 == 1) { suma = suma + i; } } (L'operador % dona el residu de la divisió.) Explica què calcula.

Mira la solucióAmaga la solucióde l'exercici 20

Resultat

suma = 16: és la suma dels nombres senars de l'1 al 7.

Resolució

  1. Bucle. El for fa que i valgui successivament 1, 2, 3, 4, 5, 6 i 7 (la condició és i <= 7).
  2. Condició. i % 2 == 1 vol dir que el residu de dividir i entre 2 és 1, i això només passa quan i és senar: 1, 3, 5 i 7.
  3. Càlcul. suma = 0 + 1 + 3 + 5 + 7 = 16.
  4. Conclusió. El codi calcula la suma dels nombres senars de l'1 al 7.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 21

Una màquina s'engega (S = 1) si la porta està tancada (P = 1) i, a més, o bé l'usuari prem el botó de marxa (M = 1), o bé el mode automàtic està activat (A = 1). Escriu la funció lògica i calcula S per a (P, M, A) = (1,0,1), (0,1,1), (1,1,0) i (1,0,0).

Mira la solucióAmaga la solucióde l'exercici 21

Resultat

S=P⋅(M+A)S = P\cdot(M + A); (1,0,1) → 1; (0,1,1) → 0; (1,1,0) → 1; (1,0,0) → 0.

Resolució

  1. Plantejament. Cal que la porta estigui tancada (P = 1) i, a més, que es premi el botó (M = 1) o que el mode automàtic estigui activat (A = 1).
  2. Funció lògica. La «i» és un producte (AND) i la «o» és una suma (OR): S=P⋅(M+A)S = P\cdot(M + A).
  3. Càlcul. (1,0,1): 1⋅(0+1)=11\cdot(0 + 1) = 1 → s'engega.
    (0,1,1): 0⋅(1+1)=00\cdot(1 + 1) = 0 → no s'engega (porta oberta).
    (1,1,0): 1⋅(1+0)=11\cdot(1 + 0) = 1 → s'engega.
    (1,0,0): 1⋅(0+0)=01\cdot(0 + 0) = 0 → no s'engega.
  4. Conclusió. La porta tancada és condició necessària en tots els casos: si P = 0, la màquina no s'engega mai.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Nivell avançat

Exercici 22

Converteix el binari 101101 a decimal i el decimal 77 a binari.

Mira la solucióAmaga la solucióde l'exercici 22

Resultat

1011012=45101101_2 = 45; 77=1001101277 = 1001101_2.

Resolució

  1. Binari a decimal. Cada bit es multiplica per la seva potència de 2: 1011012=32+8+4+1=45101101_2 = 32 + 8 + 4 + 1 = 45.
  2. Decimal a binari. Divideix 77 successivament entre 2 i apunta els residus: 77 → 1, 38 → 0, 19 → 1, 9 → 1, 4 → 0, 2 → 0, 1 → 1.
  3. Lectura. Llegint els residus de baix a dalt: 77=1001101277 = 1001101_2.
  4. Comprovació. 64+8+4+1=7764 + 8 + 4 + 1 = 77.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 23

Simplifica amb l'àlgebra de Boole l'expressió A·B + A·Bˉ\bar{B}.

Mira la solucióAmaga la solucióde l'exercici 23

Resultat

A⋅B+A⋅B‾=AA\cdot B + A\cdot\overline{B} = A

Resolució

  1. Factor comú. Treu A factor comú: A⋅B+A⋅B‾=A⋅(B+B‾)A\cdot B + A\cdot\overline{B} = A\cdot(B + \overline{B}).
  2. Complement. Com que B+B‾=1B + \overline{B} = 1: A⋅1=AA\cdot 1 = A.
  3. Comprovació. Si A = 0, tots dos termes valen 0; si A = 1, un dels dos val 1. El resultat no depèn de B.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 24

Un sistema amb tres sensors (A, B i C) s'ha d'activar si almenys dos estan actius. Escriu la taula de veritat i una funció lògica.

Mira la solucióAmaga la solucióde l'exercici 24

Resultat

S = 1 a 011, 101, 110 i 111; S=A⋅B+A⋅C+B⋅CS = A\cdot B + A\cdot C + B\cdot C.

Resolució

  1. Plantejament. La sortida ha de valer 1 quan almenys dos dels tres sensors estan actius (funció majoria).
  2. Taula de veritat.
    ABCS
    0000
    0010
    0100
    0111
    1000
    1011
    1101
    1111
    La sortida val 1 a 4 de les 8 combinacions.
  3. Funció simplificada. S val 1 sempre que hi hagi un parell de sensors actius: S=A⋅B+A⋅C+B⋅CS = A\cdot B + A\cdot C + B\cdot C
  4. Conclusió. Per implementar-la calen tres portes AND de dues entrades i una OR de tres entrades.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 25

Una funció F de tres variables A, B i C val 1 només per a les combinacions (A,B,C) = 000, 001, 100, 101 i 111, i val 0 en els altres casos. (a) Escriu F com a suma de productes. (b) Simplifica-la amb àlgebra de Boole. (c) Comprova que el resultat coincideix amb la taula.

Mira la solucióAmaga la solucióde l'exercici 25

Apartat a)

Resultat

F=A‾ B‾ C‾+A‾ B‾C+AB‾ C‾+AB‾C+ABCF = \overline{A}\,\overline{B}\,\overline{C} + \overline{A}\,\overline{B}C + A\overline{B}\,\overline{C} + A\overline{B}C + ABC

Resolució

  1. Mètode. Escriu un producte (minterme) per a cada combinació on F = 1: la variable apareix negada si val 0 i sense negar si val 1.
  2. Suma de productes. F=A‾ B‾ C‾+A‾ B‾C+AB‾ C‾+AB‾C+ABCF = \overline{A}\,\overline{B}\,\overline{C} + \overline{A}\,\overline{B}C + A\overline{B}\,\overline{C} + A\overline{B}C + ABC

Apartat b)

Resultat

F=B‾+A⋅CF = \overline{B} + A\cdot C

Resolució

  1. Agrupació. A‾ B‾ C‾+A‾ B‾C=A‾ B‾\overline{A}\,\overline{B}\,\overline{C} + \overline{A}\,\overline{B}C = \overline{A}\,\overline{B} i AB‾ C‾+AB‾C=AB‾A\overline{B}\,\overline{C} + A\overline{B}C = A\overline{B}; després, A‾ B‾+AB‾=B‾\overline{A}\,\overline{B} + A\overline{B} = \overline{B}. Així, F=B‾+ABCF = \overline{B} + ABC.
  2. Absorció. Com que B‾+B⋅X=B‾+X\overline{B} + B\cdot X = \overline{B} + X (en afegir B‾\overline{B}, el terme ABC es pot substituir per AC): F=B‾+ABC=B‾+A⋅CF = \overline{B} + ABC = \overline{B} + A\cdot C

Apartat c)

Resultat

La simplificació val 1 exactament a 000, 001, 100, 101 i 111, igual que la taula.

Resolució

  1. Primer terme. B‾\overline{B} val 1 quan B = 0: 000, 001, 100 i 101.
  2. Segon terme. A·C val 1 quan A = 1 i C = 1: 101 i 111.
  3. Conclusió. La unió dona exactament 000, 001, 100, 101 i 111, i a la resta de combinacions (010, 011, 110) F = 0, igual que la taula.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 26

Escriu en llenguatge d'Arduino el cos del loop d'un termòstat amb histèresi: un relé al pin 7 ha d'engegar una estufa quan la temperatura (variable float temp) sigui inferior a 19 °C i apagar-la quan sigui superior a 21 °C. Explica què fa el programa si temp val 20 °C.

Mira la solucióAmaga la solucióde l'exercici 26

Resultat

if (temp < 19) { digitalWrite(7, HIGH); } else if (temp > 21) { digitalWrite(7, LOW); }. Amb 20 °C el relé conserva l'estat que tenia.

Resolució

  1. Plantejament. El relé del pin 7 ha d'engegar l'estufa per sota de 19 °C i apagar-la per sobre de 21 °C; entre els dos valors no ha de fer res.
  2. Codi del loop. if (temp < 19) { digitalWrite(7, HIGH); }
    else if (temp > 21) { digitalWrite(7, LOW); }
  3. Cas temp = 20 °C. No es compleix cap de les dues condicions, així que no s'executa cap digitalWrite i el relé conserva l'estat que tenia: estufa engegada si venia d'escalfar, apagada si venia de refredar-se.
  4. Conclusió. Aquesta banda de 19 a 21 °C és la histèresi: evita que el relé commuti contínuament al voltant d'un únic valor de temperatura.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 27

Suma en binari els nombres decimals 11 i 7 (escrits amb 4 bits). Dona el resultat en binari i en decimal. Es produeix desbordament si només disposem de 4 bits? Quin és el valor més gran que es pot representar amb 4 bits?

Mira la solucióAmaga la solucióde l'exercici 27

Resultat

1011+0111=100102=181011 + 0111 = 10010_2 = 18; amb 4 bits hi ha desbordament; el valor màxim amb 4 bits és 11112=151111_2 = 15.

Resolució

  1. Dades. 11=1011211 = 1011_2 i 7=011127 = 0111_2.
  2. Suma binària. Suma bit a bit des de la dreta: 1 + 1 = 10 (escrius 0 i en portes 1); 1 + 1 + 1 = 11 (escrius 1 i en portes 1); 0 + 1 + 1 = 10 (escrius 0 i en portes 1); 1 + 0 + 1 = 10 (escrius 0 i en portes 1); el darrer que portes és 1.
  3. Resultat. 100102=16+2=1810010_2 = 16 + 2 = 18, que coincideix amb 11 + 7.
  4. Desbordament. Amb 4 bits el valor màxim és 11112=24−1=151111_2 = 2^{4} - 1 = 15. Com que 18 > 15, hi ha desbordament: caldria un 5è bit.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 28

Un semisumador suma dos bits A i B i dona dos resultats: suma S i rest (carry) C. (a) Escriu la taula de veritat. (b) Escriu S i C amb portes lògiques. (c) Calcula amb semisumadors i una porta OR la suma d'un sol bit amb rest d'entrada: 1 + 1 + 1.

Mira la solucióAmaga la solucióde l'exercici 28

Apartat a)

Resultat

A,B → S,C: 0,0 → 0,0; 0,1 → 1,0; 1,0 → 1,0; 1,1 → 0,1.

Resolució

  1. Plantejament. Suma dos bits: S és el bit de la suma i C el rest (carry) que passa a la columna següent.
  2. Taula de veritat.
    ABSC
    0000
    0110
    1010
    1101

Apartat b)

Resultat

S=A⊕BS = A \oplus B (XOR) i C=A⋅BC = A\cdot B (AND).

Resolució

  1. Suma. S val 1 quan les entrades són diferents: és una XOR, S=A⊕BS = A\oplus B.
  2. Rest. C només val 1 quan totes dues valen 1: és una AND, C=A⋅BC = A\cdot B.

Apartat c)

Resultat

1+1+1=112=31 + 1 + 1 = 11_2 = 3 (S = 1, rest = 1).

Resolució

  1. Sumador complet. Amb dos semisumadors i una OR es construeix un sumador complet (dos bits més el rest d'entrada).
  2. Primer semisumador. 1 + 1 = 10: S = 0, C = 1.
  3. Segon semisumador. S + rest d'entrada = 0 + 1 = 1: S = 1, C = 0.
  4. Rest final. C = 1 OR 0 = 1.
  5. Conclusió. Resultat: 1+1+1=112=31 + 1 + 1 = 11_2 = 3 (S = 1, rest = 1).

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 29

Un sensor LM35 dona 10 mV per °C i s'ha connectat a l'entrada analògica d'un Arduino (ADC de 10 bits, referència de 5 V). (a) Escriu la fórmula per passar la lectura a °C. (b) Quina temperatura correspon a una lectura de 75? (c) Quina és la resolució en °C d'aquest ADC? I si fos de 12 bits?

Mira la solucióAmaga la solucióde l'exercici 29

Apartat a)

Resultat

T=lectura⋅51023⋅10,010≈0,489⋅lectura  (∘C)T = \text{lectura}\cdot\dfrac{5}{1023}\cdot\dfrac{1}{0{,}010} \approx 0{,}489\cdot\text{lectura}\ \ (^\circ\text{C})

Resolució

  1. De lectura a tensió. Amb 10 bits i 5 V de referència: V=lectura⋅51023 VV = \text{lectura}\cdot\dfrac{5}{1023}\ \text{V}.
  2. De tensió a temperatura. L'LM35 dona 10 mV/°C = 0,010 V/°C: T=V0,010T = \dfrac{V}{0{,}010}.
  3. Fórmula. T=lectura⋅51023⋅10,010=0,489⋅lecturaT = \text{lectura}\cdot\dfrac{5}{1023}\cdot\dfrac{1}{0{,}010} = 0{,}489\cdot\text{lectura}

Apartat b)

Resultat

T≈36,7 ∘CT \approx 36{,}7\ ^\circ\text{C}

Resolució

  1. Tensió. V=75⋅51023=0,367 VV = 75\cdot\dfrac{5}{1023} = 0{,}367\ \text{V}.
  2. Temperatura. T=0,3670,010=36,7 ∘CT = \dfrac{0{,}367}{0{,}010} = 36{,}7\ ^\circ\text{C}.

Apartat c)

Resultat

10 bits: ≈0,49 ∘C\approx 0{,}49\ ^\circ\text{C}; 12 bits: ≈0,12 ∘C\approx 0{,}12\ ^\circ\text{C}.

Resolució

  1. 10 bits. Un nivell de l'ADC val 51023=4,89 mV\tfrac{5}{1023} = 4{,}89\ \text{mV}, que equival a 4,8910=0,49 ∘C\tfrac{4{,}89}{10} = 0{,}49\ ^\circ\text{C}.
  2. 12 bits. Ara hi ha 212=40962^{12} = 4096 nivells: 54095=1,22 mV\tfrac{5}{4095} = 1{,}22\ \text{mV}, o sigui 0,12 ∘C0{,}12\ ^\circ\text{C}.
  3. Conclusió. Més bits donen més resolució en la mesura.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Exercici 30

Un comptador binari de 3 bits (Q2 Q1 Q0) compta del 000 al 111 amb un rellotge de 8 Hz, que fa un pas per cada pols; en arribar a 111 torna a 000. (a) Quants estats té i en quant de temps fa un cicle complet? (b) Quina freqüència té cada bit? (c) Quin valor té el comptador després de 11 polsos si comença a 000?

Mira la solucióAmaga la solucióde l'exercici 30

Apartat a)

Resultat

8 estats; un cicle complet dura 1 s.

Resolució

  1. Estats. Amb 3 bits hi ha 23=82^{3} = 8 estats (del 000 al 111).
  2. Temps de cicle. Cada pols fa un pas i n'hi ha 8 per segon: t=8 polsos8 polsos/s=1 st = \dfrac{8\ \text{polsos}}{8\ \text{polsos/s}} = 1\ \text{s}.

Apartat b)

Resultat

fQ0=4 Hzf_{Q0} = 4\ \text{Hz}; fQ1=2 Hzf_{Q1} = 2\ \text{Hz}; fQ2=1 Hzf_{Q2} = 1\ \text{Hz}.

Resolució

  1. Q0. Canvia a cada pols, de manera que fa un cicle complet (0 → 1 → 0) cada 2 polsos: f=82=4 Hzf = \tfrac{8}{2} = 4\ \text{Hz}.
  2. Q1 i Q2. Cada bit divideix per 2 la freqüència de l'anterior: Q1 a 2 Hz i Q2 a 1 Hz.
  3. Conclusió. Per això un comptador binari també fa de divisor de freqüència.

Apartat c)

Resultat

El comptador marca 011 (3).

Resolució

  1. Plantejament. Cada 8 polsos el comptador torna a 000.
  2. Càlcul. 11 mòdul 8 = 3 (11=8+311 = 8 + 3), per tant el comptador marca 3=01123 = 011_2.

Nivell Batxillerat: t'ajudem amb el dubte? Pregunta-ho per WhatsApp · Ensenya-ho a casa

Preguntes freqüents

Com es passa un nombre decimal a binari?

Dividint successivament per 2 i llegint els residus de baix a dalt, des de l'últim fins al primer. 13 en binari és 1101.

Quan dona 1 una porta AND?

Només quan totes les seves entrades són 1. Si alguna entrada és 0, la sortida és 0.

Tornar a Tecnologia i Enginyeria

Altres temes de Tecnologia i Enginyeria 1r Batxillerat