Faits: A. P._ dirige l'entreprise de menuiserie et charpente X._, inscrite sous raison individuelle au registre du commerce depuis 1987. Il est assuré à titre facultatif par la Caisse nationale suisse d'assurance en cas d'accidents (ci-après : CNA). Il est par ailleurs affilié à la Caisse cantonale vaudoise de compensation AVS en qualité d'indépendant. Le 19 juin 2005, P._ s'est blessé à l'épaule droite lors d'une chute à vélo. Il s'est rendu à l'Hôpital Y._, où les docteurs B._ et C._ ont posé le diagnostic de fracture de la clavicule proximale droite. Ils ont prescrit un traitement conservateur par gilet orthopédique, puis par bretelles. L'assuré a quitté l'hôpital le 21 juin 2005. Il a pu reprendre son activité professionnelle à un taux de 10 % dès le 12 juillet 2005, puis de 20 % dès le 31 janvier 2006. La CNA a couvert les suites de l'accident en prenant en charge le traitement médical et en allouant des indemnités journalières. Le 10 octobre 2005, le docteur A._, spécialiste en chirurgie orthopédique à l'Hôpital Y._, a posé le diagnostic de fracture de la partie proximale de la clavicule droite associée à une lésion de l'acromio-claviculaire droite, avec subluxation. Il a proposé une intervention chirurgicale, qui n'a finalement pas été pratiquée en raison d'un diabète dont souffre l'assuré. Consulté pour un second avis médical, le docteur R._, médecin adjoint à l'Hôpital orthopédique Z._, a posé le diagnostic de pseudarthrose de la clavicule proximale droite avec luxation postérieure acromio-claviculaire. L'assuré se plaignant également de douleurs à l'épaule gauche, le docteur R._ a examiné cette articulation et posé le diagnostic de capsulite rétractile à un stade fortement inflammatoire. Cette affection était vraisemblablement en relation avec le diabète. Le 23 janvier 2007, le docteur R._ a réexaminé l'assuré à la demande du docteur U._, médecin d'arrondissement de la CNA. Il a maintenu les diagnostics posés précédemment, en précisant que l'état de l'épaule droite n'avait pas évolué depuis le dernier examen. Les douleurs étaient modérées et ne dépendaient que des efforts, avec peu de gêne au repos ou la nuit. Elles étaient présentes au niveau acromio-claviculaire et dans le trapèze essentiellement, moins au niveau de la clavicule proximale. L'épaule gauche restait la plus symptomatique, avec des douleurs assez marquées en fin d'amplitude de mouvements, mais également au repos. A l'examen clinique, la flexion était de 130° activement des deux côtés, l'abduction de 140° à droite contre 120° à gauche, la rotation externe coude au corps de 40° à droite contre 15° à gauche et la rotation interne symétrique à L1. La force était conservée. Au niveau de l'épaule droite, il fallait donc considérer la situation comme stabilisée, avec une gêne essentiellement pour les efforts et au niveau acromio-claviculaire. A gauche, la capsulite rétractile avait peu évolué depuis un an. Le docteur U._ a procédé aux mêmes constatations, pour l'essentiel, lors d'un examen pratiqué le 13 février 2007. Il a considéré que la mobilité active des deux épaules était modérément limitée, mais fortement appréhendée par l'assuré en raison des douleurs. Il était clair que l'assuré ne pouvait plus travailler comme charpentier. En revanche, une pleine capacité de travail était exigible dans une activité légère de type industriel, exercée à hauteur de table ou d'établi, privilégiant le contrôle et la surveillance au travail purement manuel. Le docteur U._ a proposé de retenir une atteinte à l'intégrité de 10 %, la situation correspondant à une épaule mobile jusqu'à 30° au-dessus de l'horizontale. La CNA a mis fin à la prise en charge du traitement médical et au paiement d'indemnités journalières avec effet dès le 1er mai 2007. Dès cette date, elle a alloué à l'assuré une rente fondée sur un taux d'invalidité de 19 %; elle lui a en outre alloué une indemnité pour une atteinte à l'intégrité de 10 % (décision du 2 avril 2007). Elle a maintenu sans changement ces prestations par décision sur opposition du 14 juin 2007. B. Par jugement du 8 mai 2008, le Tribunal des assurances du canton de Vaud a rejeté le recours de l'assuré contre la décision sur opposition. C. P._ interjette un recours en matière de droit public contre ce jugement. Il en demande la réforme en ce sens qu'une rente fondée sur un taux d'invalidité de 45 % lui soit allouée, sous suite de frais et dépens. A titre subsidiaire, il conclut à l'annulation du jugement entrepris et au renvoi de la cause à la juridiction cantonale pour instruction complémentaire et nouveau jugement, toujours sous suite de frais et dépens. L'intimée conclut au rejet du recours, alors que l'Office fédéral de la santé publique a renoncé à se déterminer.